Использование расписания скорости обучения и разминки скорости обучения с TensorFlow2 - PullRequest
0 голосов
/ 02 августа 2020

Мне нужно использовать разминку скорости обучения, когда вы начинаете тренировку VGG-19 CNN для CIFAR-10 с разминкой со скоростью обучения от 0,00001 до 0,1 в течение первых 10000 итераций (или примерно 13 эпох) с использованием разминки скорости обучения. А затем для оставшейся части обучения вы используете скорость обучения 0,01, где спад скорости обучения используется для уменьшения скорости обучения в 10 раз в 80 и 120 эпох. Модель должна быть обучена в течение 144 эпох.

Я использую Python 3 и TensorFlow2, где обучающий набор данных содержит 50000 примеров и размер пакета = 64. Количество итераций обучения за одну эпоху = 50000 / 64 = 781 итерация (приблизительно). Как я могу использовать в коде одновременно разминку скорости обучения и снижение скорости обучения?

В настоящее время я использую снижение скорости обучения по:

boundaries = [100000, 110000]
values = [1.0, 0.5, 0.1]

learning_rate_fn = keras.optimizers.schedules.PiecewiseConstantDecay(
    boundaries, values)
print("\nCurrent step value: {0}, LR: {1:.6f}\n".format(optimizer.iterations.numpy(), optimizer.learning_rate(optimizer.iterations)))

Однако я не Я не знаю, как использовать разминку скорости обучения вместе со снижением скорости обучения.

Помощь?

1 Ответ

0 голосов
/ 04 августа 2020

Вы можете передать планировщик скорости обучения любому оптимизатору, установив его в параметр lr . Например -

from tensorlow.keras.optimizers import schedules, RMSProp
boundaries = [100000, 110000]
values = [1.0, 0.5, 0.1]

lr_schedule = schedules.PiecewiseConstantDecay(boundaries, values)
optimizer = keras.optimizers.RMSprop(learning_rate=lr_schedule)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...