【问题标题】:Pytorch equivalent features in tensorflow?张量流中的Pytorch等效功能?
【发布时间】:2020-08-20 17:43:10
【问题描述】:

我最近在阅读 Pytorch 代码,遇到了 loss.backward()optimizer.step() 函数,有没有使用 tensorflow/keras 的等效函数?

【问题讨论】:

    标签: tensorflow keras neural-network pytorch


    【解决方案1】:

    loss.backward() 在张量流中等效为tf.GradientTape()。 TensorFlow 提供 tf.GradientTape API 用于自动微分 - 计算相对于其输入变量的计算梯度。 Tensorflow 将在tf.GradientTape 的上下文中执行的所有操作“记录”到“磁带”上。然后,Tensorflow 使用该磁带和与每个记录操作相关的梯度来计算使用反向模式微分的“记录”计算的梯度。

    optimizer.step() 在张量流中等效为minimize()。通过更新变量列表来最小化损失。调用 minimize() 会计算梯度并将其应用于变量。

    如果您想在应用渐变之前对其进行处理,您可以分三步使用优化器:

    1. 使用tf.GradientTape 计算梯度。
    2. 根据需要处理渐变。
    3. 使用apply_gradients() 应用处理后的渐变。

    希望这能回答您的问题。快乐学习。

    【讨论】:

    • @Sandipan Banerjee - 如果它回答了您的问题,请您接受并投票赞成答案。谢谢。
    • 是的,这回答了我的问题。但由于新帐户,我无法投票。
    • 但是你仍然可以接受这个答案。要将答案标记为已接受,请单击答案旁边的复选标记以将其从灰色切换为已填充。stackoverflow.com/help/someone-answers
    猜你喜欢
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2020-03-01
    • 2020-06-17
    相关资源
    最近更新 更多