当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。