【问题标题】:Does Re-Compiling reset the model's weights?重新编译是否会重置模型的权重?
【发布时间】:2021-05-01 20:56:03
【问题描述】:

查看 Daniel Möller 对 this question 的回答,我知道重新编译经过训练的模型不应影响/更改已训练的权重。但是,每当我重新编译我的模型以使用不同的学习率或批量大小来进一步训练它时,val_mse 从比初始训练结束时更高/更差的值开始。

虽然最终会降低到之前达到的val_mse,但我不确定通过重新编译模型是否只是在重置模型并重新训练。

有人可以确认重新编译是否真的会从头开始重新开始学习过程吗?另外,在模型的初始训练之后使用不同的超参数进行第二阶段的训练是否是一种常见做法(或者是否有好处)?

【问题讨论】:

  • "val_mse starts" 在任何训练之前,或者当你开始重新训练时你看到的第一个值(例如第一批/第一个时期)?
  • 后者,在第一个训练epoch结束后显示。

标签: python tensorflow neural-network resuming-training


【解决方案1】:

在第一个训练周期结束时,权重当然会发生变化。一个可能的原因是,您在较早的时期看到性能下降,然后可能会有所改善,这是因为一些优化方法的内部状态会随着时间的推移而适应,例如在收敛时减小步长,或增加动量衰减等。在训练内部state 通常不允许离模型所在的位置太远,因为它被认为接近最优,所以只尝试微调。当您从头开始重新开始训练时,该方法通常会更早地允许更大的步骤来加速早期收敛,因为假设模型远非最优。在您的情况下,您开始接近最佳状态并允许算法迈出一大步,这可能会将其带到更糟糕的地步......

如果您不希望这种情况发生,则需要深入研究优化方法的内部结构。这样做是否是个好主意?像往常一样,在 ML 中没有人适合所有答案,这取决于许多因素,因此请尝试查看您自己的具体情况。

【讨论】:

    猜你喜欢
    • 2020-11-01
    • 2021-03-30
    • 2013-10-06
    • 2020-12-05
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    相关资源
    最近更新 更多