РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pytfPmVrWt 56 of 91 menu
◀ ▶

Лента градиентов в TensorFlow

Ленту GradientTape открывают как контекст: внутри блока записывают операции над тензорами. Переменная Variable попадает под слежение сама, как только её используют в выражении. Тензор из constant лента не запоминает, пока его не добавят методом watch.

Создадим переменную, умножим её на число внутри ленты и выведем список отслеживаемых переменных через метод watched_variables:

import tensorflow as tf w = tf.Variable([1.0, 2.0]) with tf.GradientTape() as tape: out = w * 3.0 tracked = tape.watched_variables() print(len(tracked)) # выведет 1 print(tracked[0].numpy()) # выведет [1. 2.]

Для тензора-константы без вызова watch список остаётся пустым, даже если константа участвует в формуле:

import tensorflow as tf c = tf.constant(4.0) with tf.GradientTape() as tape: out = c * 2.0 tracked = tape.watched_variables() print(len(tracked)) # выведет 0

Если константу явно передать в метод watch, лента запомнит её для будущего градиента. Список watched_variables по-прежнему содержит только объекты Variable, но вызов watch уже выполнен:

import tensorflow as tf c = tf.constant(4.0) with tf.GradientTape() as tape: tape.watch(c) out = c * 2.0 tracked = tape.watched_variables() print(len(tracked)) # выведет 0

Создайте переменную с числом 2.0, откройте ленту, прибавьте к переменной 1.0 и выведите, сколько переменных отслеживает лента.

Создайте тензор-константу 5.0, умножьте её на 2.0 внутри ленты без слежения и выведите длину списка отслеживаемых переменных.

Создайте константу 5.0, добавьте её в ленту через слежение, сложите с 1.0 и снова выведите длину списка отслеживаемых переменных.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить