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

Атрибут variables класса Optimizer

Атрибут variables класса Optimizer возвращает список тензоров-переменных, которые были созданы оптимизатором. Эти переменные хранят внутреннее состояние оптимизатора, например, накопленные моменты или счетчики шагов. Атрибут доступен только для чтения и не принимает параметров. Изначально список пуст и заполняется после вызова методов build или apply_gradients.

Синтаксис

optimizer.variables

Пример

Давайте создадим оптимизатор и посмотрим на его атрибут variables до применения градиентов:

import tensorflow as tf optimizer = tf.keras.optimizers.SGD(learning_rate=0.1) print(optimizer.variables)

Результат выполнения кода:

[]

Пример

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

import tensorflow as tf var = tf.Variable([1.0, 2.0, 3.0]) optimizer = tf.keras.optimizers.SGD(learning_rate=0.1) with tf.GradientTape() as tape: loss = tf.reduce_sum(var ** 2) grads = tape.gradient(loss, [var]) optimizer.apply_gradients(zip(grads, [var])) print(optimizer.variables)

Результат выполнения кода:

[]

Пример

Давайте создадим оптимизатор Adam, который хранит моменты, и посмотрим на его переменные после применения градиентов:

import tensorflow as tf var = tf.Variable([1.0, 2.0, 3.0]) optimizer = tf.keras.optimizers.Adam(learning_rate=0.1) with tf.GradientTape() as tape: loss = tf.reduce_sum(var ** 2) grads = tape.gradient(loss, [var]) optimizer.apply_gradients(zip(grads, [var])) print(optimizer.variables)

Результат выполнения кода:

[<tf.Variable 'iteration:0' shape=() dtype=int64, numpy=1>, <tf.Variable 'momentum:0' shape=(3,) dtype=float32, numpy=array([ 2., 4., 6.], dtype=float32)>, <tf.Variable 'velocity:0' shape=(3,) dtype=float32, numpy=array([0.2, 0.4, 0.6], dtype=float32)>]

Пример

Давайте выведем количество и имена переменных оптимизатора Adam после одного шага обучения:

import tensorflow as tf var = tf.Variable([1.0, 2.0, 3.0]) optimizer = tf.keras.optimizers.Adam(learning_rate=0.1) with tf.GradientTape() as tape: loss = tf.reduce_sum(var ** 2) grads = tape.gradient(loss, [var]) optimizer.apply_gradients(zip(grads, [var])) print("Count:", len(optimizer.variables)) for v in optimizer.variables: print(v.name, v.shape)

Результат выполнения кода:

"Count: 3" "iteration:0 ()" "momentum:0 (3,)" "velocity:0 (3,)"

Смотрите также

  • класс Optimizer,
    который является базовым классом для всех оптимизаторов
  • метод apply_gradients,
    который применяет градиенты к переменным
  • метод build,
    который создает переменные оптимизатора
  • атрибут iterations,
    который возвращает число шагов оптимизатора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить