重新编译是否会重置模型的权重?



看Daniel Möller对这个问题的回答,我明白重新编译一个训练好的模型不应该影响/改变已经训练好的权重。然而,每当我重新编译我的模型来进一步训练它时,比如使用不同的学习率或批处理大小,val_mse开始时的值比初始训练结束时的值更高/更差。

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

有人能确认重新编译是否真的会重新开始学习过程吗?此外,使用不同超参数的第二阶段训练来遵循模型的初始训练是否是一种常见的做法(或者它是否有任何好处)?

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

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

最新更新