PyTorch:保存优化器状态的目的是什么?

Pas*_*cal 7 pytorch

PyTorch 能够保存和加载优化器的状态。PyTorch 教程中显示了一个示例。我目前只是保存和加载模型状态,而不是优化器。那么,除了不必记住学习率等优化器参数之外,保存和加载优化器状态还有什么意义呢?优化器状态包含什么?

小智 13

如果您想稍后恢复模型训练,您应该保存优化器状态。特别是如果 Adam 是你的优化者。Adam 是一种自适应学习率方法,这意味着它计算各种参数的个体学习率。

如果您只想使用保存的模型进行推理,则不需要。

但是,最佳实践是同时保存模型状态和优化器状态。如果您想稍后绘制它们,您还可以保存损失历史记录和其他运行指标。

我会这样做,

    torch.save({
            'epoch': epochs,
            'model_state_dict': model.state_dict(),
            'optimizer_state_dict': optimizer.state_dict(),
            'train_loss_history': loss_history,
            }, PATH)
Run Code Online (Sandbox Code Playgroud)