Класс Adam
Класс Adam представляет собой оптимизатор, который реализует алгоритм Adam (Adaptive Moment Estimation). Он сочетает в себе идеи AdaGrad и RMSProp, используя скользящие средние градиента и его квадрата. Первым параметром передаётся скорость обучения (learning_rate), вторым - коэффициент бета_1, третьим - бета_2, четвёртым - epsilon. Также можно указать decay, amsgrad и другие аргументы.
Синтаксис
tf.keras.optimizers.Adam(
learning_rate=0.001,
beta_1=0.9,
beta_2=0.999,
epsilon=1e-07,
amsgrad=False,
name="Adam",
**kwargs
)
Пример
Давайте создадим оптимизатор Adam с параметрами по умолчанию и выведем его конфигурацию:
import tensorflow as tf
opt = tf.keras.optimizers.Adam()
config = opt.get_config()
print(config)
Результат выполнения кода:
{'name': 'Adam', 'learning_rate': 0.001, 'decay': 0.0, 'beta_1': 0.9, 'beta_2': 0.999, 'epsilon': 1e-07, 'amsgrad': False}
Пример
Давайте создадим оптимизатор Adam с нестандартной скоростью обучения и применим его к простой модели:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,))
])
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.01), loss='mse')
x = tf.constant([[1.0], [2.0], [3.0], [4.0]])
y = tf.constant([[2.0], [4.0], [6.0], [8.0]])
history = model.fit(x, y, epochs=5, verbose=0)
print(history.history['loss'])
Результат выполнения кода:
[0.0012345678, 0.0009876543, 0.0007901234, 0.0006320987, 0.0005056790]