使用 f 中提供的前向行为创建 grad-pass-through 操作。
用法
tf.grad_pass_through(
f
)
参数
-
f
函数f(*x)
返回Tensor
或Tensor
输出的嵌套结构。
返回
-
一个函数
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
相关用法
- Python tf.gradients用法及代码示例
- Python tf.group用法及代码示例
- Python tf.gather用法及代码示例
- Python tf.get_current_name_scope用法及代码示例
- Python tf.gather_nd用法及代码示例
- Python tf.get_static_value用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代码示例
- Python tf.compat.v1.distribute.MirroredStrategy.experimental_distribute_dataset用法及代码示例
- Python tf.compat.v1.data.TFRecordDataset.interleave用法及代码示例
- Python tf.summary.scalar用法及代码示例
- Python tf.linalg.LinearOperatorFullMatrix.matvec用法及代码示例
- Python tf.linalg.LinearOperatorToeplitz.solve用法及代码示例
- Python tf.raw_ops.TPUReplicatedInput用法及代码示例
- Python tf.raw_ops.Bitcast用法及代码示例
- Python tf.compat.v1.distributions.Bernoulli.cross_entropy用法及代码示例
- Python tf.compat.v1.Variable.eval用法及代码示例
- Python tf.compat.v1.train.FtrlOptimizer.compute_gradients用法及代码示例
- Python tf.distribute.OneDeviceStrategy.experimental_distribute_values_from_function用法及代码示例
- Python tf.math.special.fresnel_cos用法及代码示例
- Python tf.keras.applications.inception_resnet_v2.preprocess_input用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.grad_pass_through。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。