assembleNetwork

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

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

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

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

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

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

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

Синтаксис

assembledNet = assembleNetwork(layers)

Описание

пример

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, 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: [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