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 yet 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 содержит некоторые слои, которые не поддержаны Deep Learning Toolbox™. 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, 2N, где 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: [15×1 nnet.cnn.layer.Layer]
    Connections: [15×2 table]

Входные параметры

свернуть все

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

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

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

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

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

свернуть все

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

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

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

Введенный в R2018b