【发布时间】:2020-08-20 17:43:10
【问题描述】:
我最近在阅读 Pytorch 代码,遇到了 loss.backward() 和 optimizer.step() 函数,有没有使用 tensorflow/keras 的等效函数?
【问题讨论】:
标签: tensorflow keras neural-network pytorch
我最近在阅读 Pytorch 代码,遇到了 loss.backward() 和 optimizer.step() 函数,有没有使用 tensorflow/keras 的等效函数?
【问题讨论】:
标签: tensorflow keras neural-network pytorch
loss.backward() 在张量流中等效为tf.GradientTape()。 TensorFlow 提供 tf.GradientTape API 用于自动微分 - 计算相对于其输入变量的计算梯度。 Tensorflow 将在tf.GradientTape 的上下文中执行的所有操作“记录”到“磁带”上。然后,Tensorflow 使用该磁带和与每个记录操作相关的梯度来计算使用反向模式微分的“记录”计算的梯度。
optimizer.step() 在张量流中等效为minimize()。通过更新变量列表来最小化损失。调用 minimize() 会计算梯度并将其应用于变量。
如果您想在应用渐变之前对其进行处理,您可以分三步使用优化器:
tf.GradientTape 计算梯度。apply_gradients() 应用处理后的渐变。希望这能回答您的问题。快乐学习。
【讨论】: