PyTorch能够保存和加载优化器的状态。一个例子显示了在PyTorch教程中。我目前只是保存和加载模型状态,而不是优化器。那么,除了不必记住优化器参数(比如学习速率)之外,保存和加载优化器状态还有什么意义。优化器状态中包含了什么?
发布于 2022-01-19 12:36:41
如果希望稍后恢复模型培训,则应保存优化器状态。尤其是如果亚当是你的优化器。Adam是一种自适应学习速率方法,它计算各种参数的个体学习速率。
如果只想使用保存的模型进行推理,则不需要.。
但是,保存模型状态和优化器状态是最佳实践。您还可以保存损失历史记录和其他运行度量,如果您想稍后绘制它们。
我会这样做,
torch.save({
'epoch': epochs,
'model_state_dict': model.state_dict(),
'optimizer_state_dict': optimizer.state_dict(),
'train_loss_history': loss_history,
}, PATH)发布于 2022-01-19 10:42:36
我认为保存优化器的状态是日志记录和可再现性的一个重要方面。它存储了许多关于优化器设置的细节;包括所使用的优化器的种类、学习速度、权重衰减、使用的调度器的类型(我个人认为这非常有用)等等。此外,当通过.load_state_dict()将预先训练的权重加载到当前模型时,它可以以类似的方式使用,这样您就可以使用相同的方法将一些存储的优化器设置/配置传递到当前的优化器中:optimizer.load_state_dict(some_good_optimizer.state_dict())。
https://stackoverflow.com/questions/70768868
复制相似问题