Как снизить скорость обучения оптимизатора SGD в TensorFlow 2.0? - PullRequest
2 голосов
/ 07 ноября 2019

Я хочу уменьшить скорость обучения в оптимизаторе SGD of tenorflow2.0, я использовал эту строку кода: tf.keras.optimizers.SGD(learning_rate, decay=lr_decay, momentum=0.9) Но я не знаю, упала ли моя скорость обучения, как я могу получить свою текущую скорость обучения?

1 Ответ

0 голосов
/ 07 ноября 2019
print(model.optimizer._decayed_lr('float32').numpy())

будет делать. _decayed_lr() вычисляет потерянную скорость обучения как функцию iterations и decay. Полный пример ниже.


from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.models import Model
from tensorflow.keras.optimizers import SGD
import numpy as np

ipt = Input((12,))
out = Dense(12)(ipt)
model = Model(ipt, out)
model.compile(SGD(1e-4, decay=1e-2), loss='mse')

x = y = np.random.randn(32, 12)  # dummy data
for iteration in range(10):
    model.train_on_batch(x, y)
    print("lr at iteration {}: {}".format(
            iteration + 1, model.optimizer._decayed_lr('float32').numpy()))
# OUTPUTS
lr at iteration 1: 9.900989971356466e-05
lr at iteration 2: 9.803921420825645e-05
lr at iteration 3: 9.708738070912659e-05
lr at iteration 4: 9.61538462433964e-05
lr at iteration 5: 9.523809421807528e-05
lr at iteration 6: 9.433962259208784e-05
lr at iteration 7: 9.345793660031632e-05
lr at iteration 8: 9.259258513338864e-05
lr at iteration 9: 9.174311708193272e-05
lr at iteration 10: 9.09090886125341e-05
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...