【发布时间】:2019-09-30 13:16:48
【问题描述】:
在Adam优化算法中,学习速度是根据迭代次数来调整的。我不太了解 Adam 的设计,尤其是在使用批量训练时。使用批量训练时,如果有19200张图片,每次训练64张图片,相当于300次迭代。如果我们的 epoch 有 200 次,那么总共有 60,000 次迭代。我不知道这样的多次迭代是否会将学习速度降低到非常小的尺寸。那么当我们训练的时候,是在每个 epoch 之后初始化 optim,还是在整个过程中什么都不做呢?
使用火炬。如果我使用批处理训练,我会尝试在每个 epoch 之后初始化优化,当数据数量很少时我什么都不做。
例如,我不知道这两段代码是否正确:
optimizer = optim.Adam(model.parameters(), lr=0.1)
for epoch in range(100):
###Some code
optim.step()
另一段代码:
for epoch in range(100):
optimizer = optim.Adam(model.parameters(), lr=0.1)
###Some code
optim.step()
【问题讨论】:
-
第一个块是正确的,但在你执行优化步骤之前,你可以通过 'optim.zero_grad()' 将梯度归零
标签: pytorch