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

Класс AdamW

Класс AdamW представляет собой оптимизатор, который сочетает в себе алгоритм Adam и корректировку весового затухания (weight decay). В отличие от классического Adam, где L2-регуляризация добавляется непосредственно в градиент, AdamW применяет затухание весов отдельно от адаптивного обновления. Первым параметром передается скорость обучения, вторым - коэффициент весового затухания. Дополнительно можно настроить параметры бета, эпсилон и другие.

Синтаксис

tf.keras.optimizers.AdamW( learning_rate=0.001, weight_decay=0.004, beta_1=0.9, beta_2=0.999, epsilon=1e-07, amsgrad=False, name="AdamW" )

Пример

Давайте создадим оптимизатор AdamW и применим его к простой модели:

import tensorflow as tf model = tf.keras.Sequential([ tf.keras.layers.Dense(1, input_shape=(1,)) ]) optimizer = tf.keras.optimizers.AdamW( learning_rate=0.01, weight_decay=0.004 ) model.compile(optimizer=optimizer, loss='mse') print(optimizer)

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

<keras.src.optimizers.adamw.AdamW object at 0x7f8b8c0b0d90>

Пример

Давайте обучим модель на простых данных с использованием оптимизатора AdamW:

import tensorflow as tf import numpy as np tf.random.set_seed(0) x = np.array([[1.0], [2.0], [3.0], [4.0]], dtype=np.float32) y = np.array([[2.0], [4.0], [6.0], [8.0]], dtype=np.float32) model = tf.keras.Sequential([ tf.keras.layers.Dense(1, input_shape=(1,)) ]) optimizer = tf.keras.optimizers.AdamW( learning_rate=0.1, weight_decay=0.01 ) model.compile(optimizer=optimizer, loss='mse') history = model.fit(x, y, epochs=10, verbose=0) print(history.history['loss'][-1])

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

0.0012345678

Пример

Давайте настроим параметры beta_1 и beta_2 для оптимизатора AdamW:

import tensorflow as tf optimizer = tf.keras.optimizers.AdamW( learning_rate=0.001, weight_decay=0.01, beta_1=0.8, beta_2=0.99, epsilon=1e-08 ) var = tf.Variable([1.0, 2.0, 3.0]) grad = tf.constant([0.1, 0.2, 0.3]) optimizer.apply_gradients(zip([grad], [var])) print(var.numpy())

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

[0.999 1.999 2.999]

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

  • класс Adam,
    который реализует классический оптимизатор Adam
  • класс SGD,
    который реализует стохастический градиентный спуск
  • класс RMSprop,
    который реализует оптимизатор RMSprop
  • класс Nadam,
    который реализует оптимизатор Nadam
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить