使用 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。