重新编译会重置模型的权重吗?
Does Re-Compiling reset the model's weights?
查看 Daniel Möller 对 的回答,我了解到重新编译经过训练的模型不应该 affect/change 已经训练过的权重。但是,每当我重新编译我的模型以使用不同的学习率或批量大小来进一步训练它时,val_mse
开始时的值比初始训练结束时的值 higher/worse。
虽然最终减少到之前达到的 val_mse
,但我不确定通过重新编译模型是否只是重置模型并重新训练。
有人可以确认重新编译是否真的从头开始重新开始学习过程吗?此外,在模型的初始训练之后进行具有不同超参数的训练的第二阶段是否是一种常见的做法(或者是否有任何好处)?
在第一个训练阶段结束时,权重当然会发生变化。在较早时期性能下降但后来可能有所改善的一个可能原因是一些优化方法具有随时间适应的内部状态,例如在收敛时减小步长,或增加动量衰减等。训练内部后状态通常不允许离模型所在的位置太远,因为它被认为接近最佳状态,所以只尝试微调。当您从头开始训练时,该方法通常会允许更早地执行更大的步骤以加速早期收敛,因为假设模型远非最佳。在你的情况下,你开始接近最佳并允许算法迈出一大步,这可能会使它变得更糟......
如果您不希望这种情况发生,您需要深入了解优化方法的内部结构。这样做是否是个好主意?与 ML 中一样,没有人适合所有答案,这取决于许多因素,因此请尝试查看您自己的具体情况。
查看 Daniel Möller 对 val_mse
开始时的值比初始训练结束时的值 higher/worse。
虽然最终减少到之前达到的 val_mse
,但我不确定通过重新编译模型是否只是重置模型并重新训练。
有人可以确认重新编译是否真的从头开始重新开始学习过程吗?此外,在模型的初始训练之后进行具有不同超参数的训练的第二阶段是否是一种常见的做法(或者是否有任何好处)?
在第一个训练阶段结束时,权重当然会发生变化。在较早时期性能下降但后来可能有所改善的一个可能原因是一些优化方法具有随时间适应的内部状态,例如在收敛时减小步长,或增加动量衰减等。训练内部后状态通常不允许离模型所在的位置太远,因为它被认为接近最佳状态,所以只尝试微调。当您从头开始训练时,该方法通常会允许更早地执行更大的步骤以加速早期收敛,因为假设模型远非最佳。在你的情况下,你开始接近最佳并允许算法迈出一大步,这可能会使它变得更糟......
如果您不希望这种情况发生,您需要深入了解优化方法的内部结构。这样做是否是个好主意?与 ML 中一样,没有人适合所有答案,这取决于许多因素,因此请尝试查看您自己的具体情况。