猿问

当 `x` 已经是 TensorFlow 中的 `tf.Variable` 时

考虑以下函数


def foo(x):

  with tf.GradientTape() as tape:

    tape.watch(x)


    y = x**2 + x + 4


  return tape.gradient(y, x)

tape.watch(x)如果函数被称为 as foo(tf.constant(3.14)),则调用是必要的,但当它直接传入变量时则不需要,例如foo(tf.Variable(3.14))。


现在我的问题是,tape.watch(x)即使tf.Variable在直接传入的情况下也调用安全吗?还是会因为变量已经被自动监视然后再次手动监视而发生一些奇怪的事情?编写这样可以同时接受tf.Tensor和的通用函数的正确方法是什么tf.Variable?


侃侃尔雅
浏览 154回答 2
2回答
随时随地看视频慕课网APP

相关分类

Python
我要回答