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

Атрибут learning_rate

Атрибут learning_rate класса Optimizer хранит текущее значение скорости обучения оптимизатора. Скорость обучения определяет размер шага, на который оптимизатор изменяет веса модели на каждой итерации обучения. Атрибут доступен как для чтения, так и для записи, что позволяет динамически изменять скорость обучения в процессе тренировки.

Значение learning_rate может быть скалярным числом, тензором или объектом расписания скорости обучения (learning rate schedule). При создании оптимизатора это значение задается параметром learning_rate, а затем хранится в одноименном атрибуте.

Синтаксис

optimizer.learning_rate

Пример

Давайте создадим оптимизатор SGD с начальной скоростью обучения 0.1 и выведем значение атрибута:

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

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

0.1

Пример

Давайте создадим оптимизатор Adam и изменим скорость обучения через атрибут:

import tensorflow as tf optimizer = tf.keras.optimizers.Adam(learning_rate=0.001) print("Before:", optimizer.learning_rate.numpy()) optimizer.learning_rate = 0.01 print("After:", optimizer.learning_rate.numpy())

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

Before: 0.001 After: 0.01

Пример

Давайте используем расписание скорости обучения ExponentialDecay и посмотрим, как меняется значение атрибута:

import tensorflow as tf lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay( initial_learning_rate=0.1, decay_steps=1000, decay_rate=0.9 ) optimizer = tf.keras.optimizers.SGD(learning_rate=lr_schedule) print(optimizer.learning_rate)

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

<keras.optimizers.schedules.learning_rate_schedule.ExponentialDecay object at 0x...>

Пример

Давайте применим оптимизатор к переменной и проследим, как скорость обучения влияет на обновление весов:

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("Updated var:", var.numpy()) print("Learning rate:", optimizer.learning_rate.numpy())

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

Updated var: [0.8 1.6 2.4] Learning rate: 0.1

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

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