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

Остановка градиента в TensorFlow

Функция stop_gradient возвращает те же числа, что на входе, но дальше по цепочке производная через этот фрагмент не идёт. Так отделяют часть формулы, которую обучение не должно крутить.

Сначала посчитаем градиент без обрыва: к квадрату переменной прибавим саму переменную и прочитаем производную:

import tensorflow as tf x = tf.Variable(3.0) with tf.GradientTape() as tape: square = x * x total = square + x grad = tape.gradient(total, x) print(grad) # выведет tf.Tensor(7.0, shape=(), dtype=float32)

Теперь квадрат обернём в stop_gradient и снова прибавим x. Значение суммы совпадёт, а градиент станет другим:

import tensorflow as tf x = tf.Variable(3.0) with tf.GradientTape() as tape: square = x * x total = tf.stop_gradient(square) + x grad = tape.gradient(total, x) print(grad) # выведет tf.Tensor(1.0, shape=(), dtype=float32)

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

Повторите расчёт для 2.0, но квадрат перед сложением отделите от градиента. Выведите новую производную по переменной.

Создайте переменную-ряд 1.0, 3.0, возведите ряд в квадрат поэлементно, сложите с исходным рядом без обрыва и выведите градиент.

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