主要内容

神经网络训练过程中自动保存检查点

在神经网络训练期间,如果计算机失败或杀死培训过程,可以将中间结果定期保存到遥控器以进行恢复。这有助于保护长期训练运行的值,如果需要完全重新启动,则需要完全重新启动。此功能对于长期并行培训会话特别有用,这更有可能通过计算资源故障中断。

检查点保存是可选的“CheckpointFile”训练参数后面跟着检查点文件名或路径。如果只指定文件名,则默认将该文件放在工作目录中。文件必须有.mat文件扩展名,但如果没有指定,将自动追加。在这个例子中,检查点保存被调用的文件MyCheckpoint.mat在当前工作目录中。

[x, t] = bodyfat_dataset;网= feedforwardnet (10);net2 =火车(净,x, t,“CheckpointFile”“MyCheckpoint.mat”);
第一个检查点#1:/WorkingDir/MyCheckpoint。mat 22-Mar-2013 04:49:06 Final Checkpoint #2: /WorkingDir/MyCheckpoint.mat

默认情况下,每60秒最多保存一次检查点。对于前面的短训练示例,这只导致两个检查点保存:一个在训练开始,一个在训练结束。

可选的training参数“CheckpointDelay”可以改变保存的频率。例如,在这里,对于一个时间序列问题,最小检查点延迟被设置为10秒,其中神经网络被训练为模拟悬浮磁铁。

[x, t] = maglev_dataset;网= narxnet (1:2, 1:2, 10);[X, Xi,人工智能,T] = preparets(净,X, {}, T);net2 =火车(净,X, T, Xi,人工智能,“CheckpointFile”“MyCheckpoint.mat”“CheckpointDelay”10);
第一个检查点#1:/WorkingDir/MyCheckpoint。mat 22-Mar-2013 04:59:38写入检查点#2:/WorkingDir/MyCheckpoint。mat 22-Mar-2013 04:59:48写入检查点#3:/WorkingDir/MyCheckpoint。mat 22-Mar-2013 04:59:58写入检查点#4:/WorkingDir/MyCheckpoint。mat 22-Mar-2013 05:00:08写检查点#5:/WorkingDir/MyCheckpoint最后的检查点#6:/WorkingDir/MyCheckpoint.mat

在计算机故障或训练中断后,可以重新加载包含中断前获得的最佳神经网络的检查点结构和训练记录。在这种情况下阶段字段值是'最后',表示最后一次拯救是在最后纪元,因为训练成功完成。第一个epoch检查点由'第一的',中间检查点“写”

负载(“MyCheckpoint.mat”
/WorkdingDir/MyCheckpoint. checkpoint = file: '/WorkdingDir/MyCheckpoint. 'mat' time: [2013 3 22 5 0 9.0712] number: 6 stage: 'Final' net: [1x1 network] tr: [1x1 struct]

您可以通过重新加载数据集(如果有必要),然后使用恢复的网络调用train,从上一个检查点恢复训练。

网= checkpoint.net;[x, t] = maglev_dataset;负载(“MyCheckpoint.mat”);[X, Xi,人工智能,T] = preparets(净,X, {}, T);net2 =火车(净,X, T, Xi,人工智能,“CheckpointFile”“MyCheckpoint.mat”“CheckpointDelay”10);