Я обнаружил, что если я хочу использовать tf.gradients
в тензорном потоке 2, а не в градиентной ленте, я могу сделать это, заключив код в функцию, украшенную tf.function
. Но почему-то я не могу взять градиент по отношению к переменной таким образом:
import tensorflow as tf
a = tf.Variable(initial_value=1.0, dtype=tf.float32)
b = 0.01 * a
@tf.function
def get_grads():
return tf.gradients(b, a)[0]
print(get_grads())
Я ожидал бы получить в результате какой-то тензор, тензор, который должен оцениваться как 0,01. Но вместо этого я получаю None
. Обратите внимание, что я использую это в Google Colab, поэтому проблем с версией или установкой tenorflow быть не должно.
Что я делаю не так?