Python 模型使用SGD学习,但不使用Adam
我正在浏览一个基本的PyTorch MNIST示例,注意到当我将优化器从SGD更改为Adam时,模型没有收敛。具体来说,我将第106行从Python 模型使用SGD学习,但不使用Adam,python,machine-learning,pytorch,adam,sgd,Python,Machine Learning,Pytorch,Adam,Sgd,我正在浏览一个基本的PyTorch MNIST示例,注意到当我将优化器从SGD更改为Adam时,模型没有收敛。具体来说,我将第106行从 optimizer = optim.SGD(model.parameters(), lr=args.lr, momentum=args.momentum) 到 我认为这对模型没有影响。随着新加坡元的损失迅速下降到低值后,约四分之一个时代。然而,对于亚当来说,即使经历了10个时代,损失也没有减少。我很好奇为什么会这样;在我看来,这些应该有几乎相同的性能 我在W
optimizer = optim.SGD(model.parameters(), lr=args.lr, momentum=args.momentum)
到
我认为这对模型没有影响。随着新加坡元的损失迅速下降到低值后,约四分之一个时代。然而,对于亚当来说,即使经历了10个时代,损失也没有减少。我很好奇为什么会这样;在我看来,这些应该有几乎相同的性能
我在Win10/Py3.6/PyTorch1.01/CUDA9上运行了这个
为了节省一点代码挖掘的时间,以下是hyperparams:
- lr=0.01
- 动量=0.5
- 批量大小=64
optimizer = optim.Adam(model.parameters(), lr=0.001)
或者干脆
optimizer = optim.Adam(model.parameters())
为了将lr
保留为其默认值(尽管我会说我很惊讶,因为MNIST现在以实际处理您可能放入其中的任何内容而闻名)
optimizer = optim.Adam(model.parameters())