Во время обучения нейронной сети промежуточные результаты могут быть периодически сохранены в файл MAT для восстановления, если компьютер перестал работать, или вы уничтожаете учебный процесс. Это помогает защитить значение долгих учебных выполнений, которые, если прервано должны были бы быть полностью перезапущены в противном случае. Эта функция особенно полезна для долгих параллельных сеансов обучения, которые, более вероятно, будут прерваны отказами вычислительного ресурса.
Контрольная точка сохраняет, включены с дополнительным аргументом обучения 'CheckpointFile'
, сопровождаемым именем файла контрольной точки или путем. Если вы задаете только имя файла, файл помещается в рабочую директорию по умолчанию. Файл должен иметь расширение файла .mat
, но если это не задано, это автоматически добавлено. В этом примере контрольная точка сохраняет, сделаны к файлу под названием MyCheckpoint.mat
в текущей рабочей директории.
[x,t] = bodyfat_dataset; net = feedforwardnet(10); net2 = train(net,x,t,'CheckpointFile','MyCheckpoint.mat');
22-Mar-2013 04:49:05 First Checkpoint #1: /WorkingDir/MyCheckpoint.mat 22-Mar-2013 04:49:06 Final Checkpoint #2: /WorkingDir/MyCheckpoint.mat
По умолчанию контрольная точка сохраняет, происходят самое большее один раз в 60 секунд. Для предыдущего короткого учебного примера это приводит к только двум, отмечают контрольной точкой, сохраняет: один вначале и один в конце обучения.
Дополнительный учебный аргумент 'CheckpointDelay'
может измениться, частота сохраняет. Например, здесь минимальная задержка контрольной точки установлена в 10 секунд для проблемы timeseries, где нейронная сеть обучена, чтобы смоделировать поднимаемый магнит.
[x,t] = maglev_dataset; net = narxnet(1:2,1:2,10); [X,Xi,Ai,T] = preparets(net,x,{},t); net2 = train(net,X,T,Xi,Ai,'CheckpointFile','MyCheckpoint.mat','CheckpointDelay',10);
22-Mar-2013 04:59:28 First Checkpoint #1: /WorkingDir/MyCheckpoint.mat 22-Mar-2013 04:59:38 Write Checkpoint #2: /WorkingDir/MyCheckpoint.mat 22-Mar-2013 04:59:48 Write Checkpoint #3: /WorkingDir/MyCheckpoint.mat 22-Mar-2013 04:59:58 Write Checkpoint #4: /WorkingDir/MyCheckpoint.mat 22-Mar-2013 05:00:08 Write Checkpoint #5: /WorkingDir/MyCheckpoint.mat 22-Mar-2013 05:00:09 Final Checkpoint #6: /WorkingDir/MyCheckpoint.mat
После компьютерного отказа или учебного прерывания, можно перезагрузить структуру контрольной точки, содержащую лучшую нейронную сеть, полученную перед прерыванием и учебной записью. В этом случае значением поля stage
является 'Final'
, указывая, что последнее сохранение было в итоговую эпоху потому что обучение, завершенное успешно. Первая контрольная точка эпохи обозначается 'First'
и промежуточными контрольными точками 'Write'
.
load('MyCheckpoint.mat')
checkpoint = file: '/WorkdingDir/MyCheckpoint.mat' time: [2013 3 22 5 0 9.0712] number: 6 stage: 'Final' net: [1x1 network] tr: [1x1 struct]
Можно возобновить обучение от последней контрольной точки путем перезагрузки набора данных (при необходимости), затем вызова train с восстановленной сетью.
net = checkpoint.net; [x,t] = maglev_dataset; load('MyCheckpoint.mat'); [X,Xi,Ai,T] = preparets(net,x,{},t); net2 = train(net,X,T,Xi,Ai,'CheckpointFile','MyCheckpoint.mat','CheckpointDelay',10);