Pytorch 考虑到Adam optim的自适应学习率,如何使用Adam optim?

Pytorch 考虑到Adam optim的自适应学习率,如何使用Adam optim?,pytorch,Pytorch,在Adam优化算法中,根据迭代次数调整学习速度。我不太理解Adam的设计,尤其是在使用批量培训时。使用批量训练时,如果有19200张图片,每次训练64张图片,相当于300次迭代。如果我们的时代有200次,那么总共有60000次迭代。我不知道这样的多次迭代是否会将学习速度降低到很小的程度。因此,当我们在训练时,是在每个历元之后初始化optim,还是在整个过程中什么都不做 使用Pytork。如果我使用批处理训练,我会尝试在每个历元之后初始化optim,当数据量很小时,我什么也不做 对于expampl

在Adam优化算法中,根据迭代次数调整学习速度。我不太理解Adam的设计,尤其是在使用批量培训时。使用批量训练时,如果有19200张图片,每次训练64张图片,相当于300次迭代。如果我们的时代有200次,那么总共有60000次迭代。我不知道这样的多次迭代是否会将学习速度降低到很小的程度。因此,当我们在训练时,是在每个历元之后初始化optim,还是在整个过程中什么都不做

使用Pytork。如果我使用批处理训练,我会尝试在每个历元之后初始化optim,当数据量很小时,我什么也不做

对于expample,我不知道这两段代码是否正确:

optimizer=optim.Adam(model.parameters(),lr=0.1)
对于范围内的历元(100):
###一些代码
optim.step()
另一段代码:

适用于范围(100)内的历元:
optimizer=optim.Adam(model.parameters(),lr=0.1)
###一些代码
optim.step()

你可以在这里阅读官方报纸

您的更新看起来有点像这样(为了简单起见,我省略了预热阶段):

new_theta=旧_theta-学习率*动量/(速度+每股收益)


这里的直觉是,如果
动量
速度
,则优化器处于平稳状态,因此
学习率
增加,因为
动量/速度>1
。另一方面,如果
momentum
第一个块是正确的,但在执行optim步骤之前,可以通过“optim.zero\u grad()”将梯度归零