В чем разница между tf.train.AdamOptimizer и использованием adam в keras.compile? - PullRequest
2 голосов
/ 05 мая 2020

Я строил плотную нейронную сеть для предсказания покерных рук. Сначала у меня была проблема с воспроизводимостью, но потом я обнаружил свою настоящую проблему: я не могу воспроизвести свой код из-за оптимизатора adam, потому что с sgd он работал. Это означает, что

model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

НЕ работал, тогда как

opti = tf.train.AdamOptimizer()
model.compile(loss='sparse_categorical_crossentropy', optimizer=opti, metrics=['accuracy'])

работал с воспроизводимостью. Итак, мой вопрос: есть ли разница при использовании

tf.train.AdamOptimizer

и

model.compile(..., optimizer = 'adam')

, потому что я хотел бы использовать первый из-за проблемы воспроизведения.

1 Ответ

1 голос
/ 05 мая 2020

Они оба одинаковы. Однако в tensorflow.train.AdamOptimizer вы можете изменить скорость обучения

tf.compat.v1.train.AdamOptimizer(
    learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, use_locking=False,
    name='Adam')

, что повысит эффективность обучения, и обучение займет больше времени. но в model.compile (optimizer = "adam") он установит скорость обучения, beta1, beta2 ... et c на настройки по умолчанию

...