动态图中如何便捷的进行梯度累加
Created by: HighCWu
- 版本、环境信息: PaddlePaddle版本:1.8.0
- 伪代码
optimizer.clear_gradients()
losses = []
for i in range(8):
fake_y = model(x)
loss = layers.mean((fake_y - real_y)**2)
loss.backward()
losses.append(loss)
optimizer.minimize(losses)
如何实现losses中所有loss的反传梯度累加在一起用于一次性优化?有便捷的实现吗?重新包装一个优化器会有些麻烦。应该不是ReComputeOptimizer那种。
- 对标PyTorch实现
optimizer.zero_grad()
for i in range(8):
fake_y = model(x)
loss = layers.mean((fake_y - real_y)**2)
loss.backward()
optimizer.step()
PyTorch的已经实现的过程会简洁很多,因为它会自动计算进行了反向传播的损失