exponenta event banner

assembleNetwork

Сборка сети глубокого обучения из предварительно подготовленных слоев

Описание

assembleNetwork создает сети глубокого обучения из слоев без обучения.

Использовать assembleNetwork для следующих задач:

  • Преобразование массива слоев или графа слоев в сеть, готовую к прогнозированию.

  • Сборка сетей из импортированных слоев.

  • Изменение весов обучаемой сети.

Чтобы обучить сеть с нуля, используйте trainNetwork.

пример

assembledNet = assembleNetwork(layers) сборка массива слоев или графа слоев layers в сеть глубокого обучения, готовую к использованию для прогнозирования.

Примеры

свернуть все

Импортируйте слои из предварительно подготовленной сети Keras, замените неподдерживаемые слои пользовательскими слоями и соберите слои в сеть, готовую для прогнозирования.

Импорт сети Keras

Импортируйте слои из сетевой модели Keras. Сеть в 'digitsDAGnetwithnoise.h5' классифицирует изображения цифр.

filename = 'digitsDAGnetwithnoise.h5';
lgraph = importKerasLayers(filename,'ImportWeights',true);
Warning: Unable to import some Keras layers, because they are not supported by the Deep Learning Toolbox. They have been replaced by placeholder layers. To find these layers, call the function findPlaceholderLayers on the returned object.

Сеть Keras содержит некоторые уровни, которые не поддерживаются Toolbox™ Deep Learning. importKerasLayers функция отображает предупреждение и заменяет неподдерживаемые слои слоями-местозаполнителями.

Заменить слои-заполнители

Чтобы заменить слои-заполнители, сначала определите имена слоев для замены. Поиск слоев-заполнителей с помощью findPlaceholderLayers и отобразить их конфигурации Keras.

placeholderLayers = findPlaceholderLayers(lgraph);
placeholderLayers.KerasConfiguration
ans = struct with fields:
    trainable: 1
         name: 'gaussian_noise_1'
       stddev: 1.5000

ans = struct with fields:
    trainable: 1
         name: 'gaussian_noise_2'
       stddev: 0.7000

Определение пользовательского уровня шума Гаусса путем сохранения файла gaussianNoiseLayer.m в текущей папке. Затем создайте два уровня шума Гаусса с теми же конфигурациями, что и импортированные слои Keras.

gnLayer1 = gaussianNoiseLayer(1.5,'new_gaussian_noise_1');
gnLayer2 = gaussianNoiseLayer(0.7,'new_gaussian_noise_2');

Замена слоев-заполнителей пользовательскими слоями с помощью replaceLayer.

lgraph = replaceLayer(lgraph,'gaussian_noise_1',gnLayer1);
lgraph = replaceLayer(lgraph,'gaussian_noise_2',gnLayer2);

Указать имена классов

Импортированный слой классификации не содержит классов, поэтому их необходимо указать перед сборкой сети. Если классы не указаны, то программа автоматически устанавливает классы на 1, 2, ..., N, где N - количество классов.

Классификационный слой имеет имя 'ClassificationLayer_activation_1'. Установите классы в значение 0, 1, ..., 9, а затем замените импортированный классификационный слой новым.

cLayer = lgraph.Layers(end);
cLayer.Classes = string(0:9);
lgraph = replaceLayer(lgraph,'ClassificationLayer_activation_1',cLayer);

Собрать сеть

Собрать график слоев с помощью assembleNetwork. Функция возвращает DAGNetwork объект, который готов к использованию для прогнозирования.

net = assembleNetwork(lgraph)
net = 
  DAGNetwork with properties:

         Layers: [15x1 nnet.cnn.layer.Layer]
    Connections: [15x2 table]
     InputNames: {'input_1'}
    OutputNames: {'ClassificationLayer_activation_1'}

Входные аргументы

свернуть все

Сетевые уровни, указанные как Layer массив или LayerGraph объект.

Для создания сети с последовательным подключением всех слоев можно использовать Layer массив в качестве входного аргумента. В этом случае возвращенной сетью является SeriesNetwork объект.

Сеть направленных ациклических графов (DAG) имеет сложную структуру, в которой слои могут иметь множество входов и выходов. Чтобы создать сеть DAG, укажите сетевую архитектуру как LayerGraph объект, а затем использовать этот график слоев в качестве входного аргумента для assembleNetwork.

Список встроенных слоев см. в разделе Список слоев глубокого обучения.

Выходные аргументы

свернуть все

Собранная сеть готова для прогнозирования, возвращена как SeriesNetwork объект или DAGNetwork объект. Возвращаемая сеть зависит от layers входной аргумент:

  • Если layers является Layer массив, затем assembledNet является SeriesNetwork объект.

  • Если layers является LayerGraph объект, затем assembledNet является DAGNetwork объект.

Представлен в R2018b