Как изменить размер скрытых слоев dlib нейронной сети во время выполнения? - PullRequest
0 голосов
/ 26 февраля 2019

В dlib вы можете построить нейронную сеть, как показано в в этом примере .Он использует using для определения своей структуры, а затем создает его экземпляр следующим образом:

using net_type = [...] ;
net_type net;

После этого момента, как можно добавить, удалить или изменить размер скрытого слоя во время выполнения ?Есть такие вещи, как add_layer, но нейронные сети в dlib сильно шаблонированы, и я не знаю, если и как add_layer или, возможно, layer для доступа к слоям можетhelp.

Чтобы быть более конкретным, учитывая связанный пример, как бы я изменил, скажем, часть

relu<fc<84,

во время выполнения, скажем relu<fc<100,, удалил ее или добавил другойодин между любыми данными двумя слоями?

1 Ответ

0 голосов
/ 06 марта 2019

Вы не можете добавлять слои во время выполнения.Однако вы можете редактировать их свойства, например, слой fc имеет set_num_outputs().Каждый объект слоя имеет документацию, на которую вы можете посмотреть, что вы можете с ней сделать.Документы для fc здесь: http://dlib.net/dlib/dnn/layers_abstract.h.html#fc_

В этом примере показано, как получить доступ к слоям.например, layer<7>(net).layer_details().set_num_outputs(123).

...