Метод build класса Optimizer
Метод build класса Optimizer создает внутренние переменные оптимизатора,
такие как накопленные градиенты и моменты, на основе формы обучаемых переменных модели.
Метод вызывается автоматически при первом применении оптимизатора к переменным,
но его можно вызвать и вручную. Первым параметром метод принимает список переменных
var_list, для которых нужно создать слоты. Вторым параметром передается
необязательный аргумент name, задающий имя области видимости для создаваемых переменных.
Синтаксис
optimizer.build(var_list, [name])
Пример
Давайте создадим оптимизатор и переменную, а затем вызовем метод build
для инициализации внутренних слотов оптимизатора:
import tensorflow as tf
optimizer = tf.keras.optimizers.SGD(learning_rate=0.01)
var = tf.Variable([1.0, 2.0, 3.0])
optimizer.build([var])
print(optimizer.variables)
Результат выполнения кода:
[<tf.Variable 'SGD/iter:0' shape=() dtype=int64, numpy=0>]
Пример
Давайте проверим, что до вызова метода build список переменных оптимизатора пуст,
а после вызова он заполняется:
Результат выполнения кода:
"Before build: 0"
"After build: 3"
Пример
Давайте создадим оптимизатор с моментом и посмотрим, какие переменные
создаются после вызова метода build для двумерной переменной:
import tensorflow as tf
optimizer = tf.keras.optimizers.SGD(learning_rate=0.01, momentum=0.9)
var = tf.Variable([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
optimizer.build([var])
for v in optimizer.variables:
print(v.name, v.shape)
Результат выполнения кода:
"SGD/iter:0 ()"
"SGD/momentum/0 (2, 3)"
Смотрите также
-
класс
Optimizer,
который является базовым классом для всех оптимизаторов -
метод
apply_gradients,
который применяет градиенты к переменным -
метод
minimize,
который минимизирует функцию потерь -
атрибут
variables,
который хранит переменные оптимизатора