在TensorFlow中自定义梯度的两种方法: link,以sign函数为例子。
在python和 c++ 端对 op 的梯度进行定义:link
Tensorflow官方custom grad的例子:link.
以tf.math.log(1 + tf.exp(x))为例子。
Note:
使用 Eager execution 时,不支持使用 tf.gradients,因此需要用 tf.GradientTape来替换。
tf.GradientTape的使用方法是
with tf.GradientTape() as grad:
y = x * x
dy_dx = grad.gradient(y, x)
print('dy_dx=',dy_dx)