【发布时间】:2019-09-10 06:03:21
【问题描述】:
我正在浏览一个基本的 PyTorch MNIST 示例 here,并注意到当我将优化器从 SGD 更改为 Adam 时,模型没有收敛。具体来说,我将第 106 行从
optimizer = optim.SGD(model.parameters(), lr=args.lr, momentum=args.momentum)
到
optimizer = optim.Adam(model.parameters(), lr=args.lr)
我认为这对模型没有影响。使用 SGD,损失在大约四分之一的时期后迅速下降到低值。然而,对于 Adam,即使经过 10 个 epoch,损失也没有下降。我很好奇为什么会这样;在我看来,这些应该具有几乎相同的性能。
我在 Win10/Py3.6/PyTorch1.01/CUDA9 上运行了这个
为了节省一点代码挖掘,这里是超参数:
- lr=0.01
- 动量=0.5
- batch_size=64
【问题讨论】:
标签: python machine-learning pytorch adam sgd