Optimization Pytorch Adam优化器';什么是尴尬的行为?重启更好吗?

Optimization Pytorch Adam优化器';什么是尴尬的行为?重启更好吗?,optimization,deep-learning,pytorch,gradient-descent,Optimization,Deep Learning,Pytorch,Gradient Descent,我正在尝试用Pytorch训练CNN文本分类器。我像这样使用Adam优化器 optimizer=torch.optim.Adam(CNN\u Text.parameters(),lr=args.lr) 我发现优化器收敛得非常快,然后它的精度继续缓慢下降。(验证损失在1-2分钟内大幅减少,然后继续缓慢增加) 所以,我实施了学习率衰减 如果当前损失>价值损失: prev_lr=参数组['lr'] 参数组['lr']=prev_lr/10 我发现这并没有多大帮助。但是,如果我手动保存模型,加载它,并以

我正在尝试用Pytorch训练CNN文本分类器。我像这样使用Adam优化器

optimizer=torch.optim.Adam(CNN\u Text.parameters(),lr=args.lr)

我发现优化器收敛得非常快,然后它的精度继续缓慢下降。(验证损失在1-2分钟内大幅减少,然后继续缓慢增加)

所以,我实施了学习率衰减

如果当前损失>价值损失:
prev_lr=参数组['lr']
参数组['lr']=prev_lr/10

我发现这并没有多大帮助。但是,如果我手动保存模型,加载它,并以较低的学习率运行培训,它的性能确实要好得多

这让我很为难,因为我需要继续观察梯度下降并手动更改选项。我尝试了SGD和其他优化器,因为我认为这是Adam的问题,但我找不到一个好方法


有人能帮我吗?

什么是
param_group
?对于该代码段,它看起来像一个与优化器没有任何关联的变量。您需要修改的是
optimizer.param_groups
中每个元素的
'lr'
条目,这就是
ADAM
实际查看的内容


无论哪种方式,除非你有充分的理由亲自动手,否则我建议你使用随Pytork提供的。如果您确实需要重新实现,请查看它并从中获得灵感。

问题是Adam还有其他内部参数(梯度的累积平均值等)也需要重置

因此,您有更好的机会删除实例化学习率较低的优化程序

至少这对我有用