是否有必要在每次使用nntool在matlab中重新训练相同模​​型时初始化权重?

时间:2017-07-12 07:03:39

标签: matlab neural-network nntool

我知道ANN模型,初始权重是随机的。如果我训练模型并按nntool重复训练10次,那么每次单击训练按钮时是否会初始化权重,或者仍然使用刚刚调整过的相同初始权重?

1 个答案:

答案 0 :(得分:0)

我不确定您引用的 nntool 是否使用了火车方法(请参阅此处https://de.mathworks.com/help/nnet/ref/train.html)。

我已经非常广泛地使用了这种方法,它的工作方式与tensorflow类似,你可以存储一些检查点并加载最新状态以继续从这一点开始训练。代码看起来像这样。

[feat,target] = iris_dataset;
my_nn = patternnet(20);
my_nn = train(my_nn,feat,target,'CheckpointFile','MyCheckpoint','CheckpointDelay',30);

我们要求检查点以每30秒不超过一个的速度存储。当您想要继续训练时,必须从检查点文件加载网络:

[feat,target] = iris_dataset;
load MyCheckpoint
my_nn = checkpoint.my_nn;
my_nn = train(my_nn,feat,target,'CheckpointFile','MyCheckpoint');

此解决方案涉及从命令行或通过脚本训练网络,而不是使用Mathworks提供的GUI。老实说,我认为后一种方法对于初学者来说非常棒,但是如果你想使用命令行做任何有趣的巧妙开始,或者甚至更好地切换到像Torch或Tensorflow这样的库!

希望它有所帮助!