【问题标题】:Is it necessary to initialized the weights for every time retraining the same model in matlab with nntool?每次使用 nntool 在 matlab 中重新训练相同的模型时,是否需要初始化权重?
【发布时间】:2017-12-16 11:11:42
【问题描述】:

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

【问题讨论】:

    标签: matlab neural-network nntool


    【解决方案1】:

    我不确定您提到的 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 等库!

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 2018-07-13
      • 2020-09-20
      • 2016-06-29
      • 1970-01-01
      • 2021-10-02
      • 2021-06-08
      相关资源
      最近更新 更多