當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.grad_pass_through用法及代碼示例


使用 f 中提供的前向行為創建 grad-pass-through 操作。

用法

tf.grad_pass_through(
    f
)

參數

  • f 函數 f(*x) 返回 TensorTensor 輸出的嵌套結構。

返回

  • 一個函數h(x),它返回與f(x) 相同的值,其梯度與恒等函數的梯度相同。

使用此函數包裝任何操作,保持其在前向傳遞中的行為,但將反向圖中的原始操作替換為一個標識。例如:

x = tf.Variable(1.0, name="x")
z = tf.Variable(3.0, name="z")

with tf.GradientTape() as tape:
  # y will evaluate to 9.0
  y = tf.grad_pass_through(x.assign)(z**2)
# grads will evaluate to 6.0
grads = tape.gradient(y, z)

另一個例子是'differentiable' 移動平均近似,其中允許梯度流入最後一個輸入移動平均的值,但移動平均仍用於前向傳播:

x = ... # Some scalar value
# A moving average object, we don't need to know how this is implemented
moving_average = MovingAverage()
with backprop.GradientTape() as tape:
  # mavg_x will evaluate to the current running average value
  mavg_x = tf.grad_pass_through(moving_average)(x)
grads = tape.gradient(mavg_x, x) # grads will evaluate to 1.0

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.grad_pass_through。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。