Я тренирую глубокую нейронную сеть, используя следующую функцию Matlab:

net = trainNetwork (XTrain, YTrain, слои, параметры);

Могу ли я использовать команду trainNetwork для переобучения сети (не с нуля), используя последнее состояние сети из предыдущего обучения?

Делюсь частью кода:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

слои = [

imageInputLayer([1 Nin 5],"Имя","ввод изображения")

convolution2dLayer([1 3],32,"Name","conv","Padding","same")%

%batchNormalizationLayer('Имя','batchDown')

tanhLayer("Имя","tanh1)

convolution2dLayer([1 3],32,"Имя","conv","Заполнение","тот же","DilationFactor",[1 3])%

%batchNormalizationLayer('Имя','batchDown1')

tanhLayer("Имя","tanh2)

convolution2dLayer([1 3],2,"Имя","конв","Заполнение","такой же","DilationFactor",[1 9])%

слой регрессии];

options = trainingOptions('адам', …

«Начальная скорость обучения», 0,001, …

«MaxEpochs», 50000, …

«ExecutionEnvironment», «параллельно»,…

«Многословный», ложный, …

«Сюжеты», «прогресс обучения»);

Net1 = trainNetwork (XTrain1, YTrain1, слои, параметры);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

теперь я хотел бы снова тренироваться, получая Net2 с использованием новых данных и начиная обучение с этапа Net1.

Например:

Net2 = trainNetwork (XTrain2, YTrain2, слои, параметры);

однако мне не ясно, как запустить процесс обучения для Net2, используя этап Net1.

ОТВЕЧАТЬ

Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech , ME, M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

Вы можете сделать следующее, если Net1 является SeriesNetwork:

Net2 = trainNetwork(XTrain2, YTrain2, Net1.Layers, options);

или если Net1 является DAGNetwork:

Net2 = trainNetwork(XTrain2, YTrain2, layerGraph(Net1), options);

Это будет обучать использование Net1 в качестве начальной сети.

Если вы также хотите предотвратить изменение весов в определенных слоях, вы можете использовать замораживание веса (см., как получить к нему доступ ниже). Эту функцию можно использовать для установки скорости обучения в этих слоях на ноль. Во время обучения trainNetwork не обновляет параметры «замороженных» слоев.

edit(fullfile(matlabroot,'examples','nnet','main','freezeWeights.m'))