每次用 nntool 在 matlab 中重新训练同一个模型时是否需要初始化权重?

Is it necessary to initialized the weights for every time retraining the same model in matlab with nntool?

我知道对于 ANN 模型,初始权重是随机的。如果我训练一个模型并通过 nntool 重复训练 10 次,每次单击训练按钮时权重是否初始化,还是仍然使用您刚刚调整的相同初始权重?

我不确定您提到的 nntool 是否使用了 train 方法(参见此处 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 等库!

希望对您有所帮助!