对于以下代码这种机制
def f(x, y):
output = 1.0
for i in range(y):
if i> 1 :
output = tf.multiply(output, x)
return output
def grad(x, y):
with tf.GradientTape() as t:
t.watch(x)
out = f(x, y)
return t.gradient(out, x)
x = tf.convert_to_tensor(2.0)
print(grad(x, 3))
print(grad(x, 4))
print(grad(x, 5))
tf.Tensor(1.0, shape=(), dtype=float32)
tf.Tensor(4.0, shape=(), dtype=float32)
tf.Tensor(12.0, shape=(), dtype=float32)
grad(x, 3)表示对x求导,grad(x, 4)对x的平方求导,grad(x, 5)对x的三次方求导,(与下文代码做对比观看)
转载请注明原文地址:https://ipadbbs.8miu.com/read-16574.html