2 votes

Quelle est la différence entre tf.train.AdamOptimizer et utiliser adam dans keras.compile ?

Je construisais un réseau neuronal dense pour prédire les mains au poker. J'ai d'abord eu un problème avec la reproductibilité, puis j'ai découvert mon vrai problème : le fait que je ne puisse pas reproduire mon code est dû à l'optimiseur adam, car avec sgd il fonctionnait. Cela signifie

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

n'a PAS fonctionné, alors que

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

a travaillé avec la reproductibilité. Donc ma question est maintenant : Y a-t-il une différence en utilisant

tf.train.AdamOptimizer

y

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

parce que je voudrais utiliser le premier à cause du problème de reproduction.

2voto

Hadok 361 Points 66

Les deux sont les mêmes. Cependant, dans le tensorflow.train.AdamOptimizer vous pouvez changer le taux d'apprentissage.

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

ce qui améliorera la performance de l'apprentissage et la formation prendra plus de temps. mais dans les modèle.compile(optimiseur="adam") il définira le taux d'apprentissage, beta1, beta2...etc aux paramètres par défaut.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X