Правильно настроить экспоненциальный спад скорости обучения в тензорном потоке - PullRequest
0 голосов
/ 02 мая 2020

Мне нужно применять экспоненциальный спад скорости обучения каждые 10 эпох. Начальная скорость обучения равна 0.000001, а коэффициент затухания равен 0.95

. Это правильный способ его настройки?

lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay(
        initial_learning_rate=0.000001, 
        decay_steps=(my_steps_per_epoch*10), 
        decay_rate=0.05)
opt = tf.keras.optimizers.SGD(learning_rate=lr_schedule, momentum=0.9)

Формула экспоненциального спада равна current_lr = initial_lr * (1 - decay_factor)^t За исключением что в код он реализован следующим образом:

decayed_learning_rate = learning_rate *
                      decay_rate ^ (global_step / decay_steps)

Насколько мне известно, decay_rate должно быть 1 - decay_factor, а decay_steps должно означать, сколько шагов выполняется перед применением распад, в моем случае my_steps_per_epoch*10. Это правильно?

РЕДАКТИРОВАТЬ:

Если я сделаю паузу и сохраню свою модель (с помощью обратных вызовов) после 10-й эпохи, а затем продолжу, загрузив модель и вызвав model.fit с initial_epoch=10 и epochs=11, начнется ли оно в 11-й эпохе и приведет к экспоненциальному затуханию?

...