Метод watched_variables
Метод watched_variables принадлежит классу tf.GradientTape и возвращает коллекцию переменных TensorFlow, которые в данный момент отслеживаются лентой. Лента автоматически следит за обучаемыми переменными, созданными через tf.Variable, а также за тензорами, явно добавленными через метод watch. Метод не принимает параметров и возвращает объект, подобный списку, элементы которого можно перебирать в цикле или преобразовывать в список.
Синтаксис
tape.watched_variables()
Пример
Давайте создадим ленту и одну переменную, а затем посмотрим, какие переменные она отслеживает:
import tensorflow as tf
v = tf.Variable([1.0, 2.0, 3.0])
with tf.GradientTape() as tape:
watched = tape.watched_variables()
print(len(watched))
Результат выполнения кода:
0
Пример
Метод возвращает переменные, за которыми лента начала следить после выполнения операций над ними:
import tensorflow as tf
v = tf.Variable([1.0, 2.0, 3.0])
with tf.GradientTape() as tape:
res = v * 2
watched = tape.watched_variables()
print(len(watched))
print(watched[0].numpy())
Результат выполнения кода:
1
[1. 2. 3.]
Пример
Давайте посмотрим, как меняется список отслеживаемых переменных при работе с несколькими переменными:
import tensorflow as tf
v1 = tf.Variable([1.0, 2.0, 3.0])
v2 = tf.Variable([4.0, 5.0, 6.0])
with tf.GradientTape() as tape:
res = v1 + v2
watched = tape.watched_variables()
print(len(watched))
for v in watched:
print(v.numpy())
Результат выполнения кода:
2
[1. 2. 3.]
[4. 5. 6.]
Пример
Давайте добавим в ленту обычный тензор через метод watch и проверим результат:
import tensorflow as tf
t = tf.constant([1.0, 2.0, 3.0])
with tf.GradientTape() as tape:
tape.watch(t)
res = t * 2
watched = tape.watched_variables()
print(len(watched))
Результат выполнения кода:
0
Обратите внимание, что тензор, добавленный через watch, не попадает в список watched_variables, так как этот метод возвращает только переменные типа tf.Variable.
Смотрите также
-
класс
GradientTape,
который записывает операции для вычисления градиентов -
метод
watch,
который добавляет тензор под наблюдение ленты -
метод
gradient,
который вычисляет градиент записанной операции -
метод
reset,
который очищает записанную лентой информацию