Метод from_config
Метод from_config класса Optimizer
создает новый экземпляр оптимизатора из
словаря конфигурации. Первым параметром
метод принимает словарь config, который
содержит параметры оптимизатора, например,
скорость обучения или другие гиперпараметры.
Этот метод является обратным к методу
get_config и позволяет сохранять и
восстанавливать состояние оптимизатора.
Метод обычно используется при загрузке
модели из файла или при сериализации
оптимизатора. По умолчанию он вызывает
конструктор класса с параметрами из словаря
config.
Синтаксис
Optimizer.from_config(config)
Пример
Давайте создадим оптимизатор, получим его конфигурацию, а затем восстановим оптимизатор из этой конфигурации:
import tensorflow as tf
# Create an optimizer
optimizer = tf.keras.optimizers.Adam(learning_rate=0.01)
# Get its configuration
config = optimizer.get_config()
print(config)
# Restore the optimizer from the configuration
restored_optimizer = tf.keras.optimizers.Adam.from_config(config)
print(restored_optimizer.learning_rate.numpy())
Результат выполнения кода:
{'name': 'Adam', 'learning_rate': 0.01, 'decay': 0.0, 'beta_1': 0.9, 'beta_2': 0.999, 'epsilon': 1e-07, 'amsgrad': False, 'weight_decay': None, 'clipnorm': None, 'clipvalue': None, 'global_clipnorm': None, 'use_ema': False, 'ema_momentum': 0.99, 'ema_overwrite_frequency': None, 'jit_compile': False, 'is_legacy_optimizer': False, 'dynamic': True, 'initial_accumulator_value': 0.0, 'initial_gradient_squared_accumulator_value': 0.1}
0.01
Пример
Давайте восстановим оптимизатор из пользовательского словаря конфигурации, задав свои значения гиперпараметров:
import tensorflow as tf
# Custom configuration
config = {
'name': 'SGD',
'learning_rate': 0.005,
'momentum': 0.9,
'nesterov': True,
'weight_decay': None,
'clipnorm': None,
'clipvalue': None,
'global_clipnorm': None,
'use_ema': False,
'ema_momentum': 0.99,
'ema_overwrite_frequency': None,
'jit_compile': False,
'is_legacy_optimizer': False
}
# Create optimizer from config
optimizer = tf.keras.optimizers.SGD.from_config(config)
print(optimizer.learning_rate.numpy())
print(optimizer.momentum)
print(optimizer.nesterov)
Результат выполнения кода:
0.005
0.9
True
Смотрите также
-
метод
get_config,
который возвращает конфигурацию оптимизатора -
класс
Optimizer,
который представляет базовый класс для всех оптимизаторов -
метод
apply_gradients,
который применяет градиенты к переменным -
атрибут
learning_rate,
который задает скорость обучения оптимизатора