1

我使用不是我写的代码。因此,在执行此代码时,我们会收到有关 zero_grads() 不存在的错误

optimizer.zero_grads()
AttributeError: 'Adam' object has no attribute 'zero_grads'

这段代码是:

import chainer.optimizers as O
optimizer = O.Adam()
optimizer.setup(model)
clip = chainer.optimizer.GradientClipping(5.0)
optimizer.add_hook(clip)
....

optimizer.zero_grads()
optimizer.update()

我应该改变吗:optimizer.zero_grads()

optimizer.use_cleargrads(use=True)?

请注意,我使用的是chainer 4.0 版本和使用chainer 1.5 构建的代码。

4

1 回答 1

2

优化器的方法zero_grads已被弃用和删除,现在最好使用 Link 的方法cleargrads

所以我想你应该optimizer.zero_grads()改为model.cleargrads()

另外,参考

但是,当您想使用chainer v1.5 编写的代码时,可能还有其他几个地方需要针对chainer v4 进行更新。最好先尝试使用 chainer v1.5 执行代码以查看行为。

于 2018-05-04T03:07:29.357 回答