Lors de la création d'un client Keras Optimizer
, la fonction Workhorse est Optimizer.get_updates()
. J'ai été capable de créer un optimiseur à pas fixe, mais je ne suis pas sûr de savoir comment faire des choses telles que des moyennes en cours où je dois utiliser des valeurs calculées à partir d'appels précédents de la fonction.Création de votre propre Optimiseur Keras
Par exemple, consider RMSprop
. L'accumulateur n'est-il pas réinitialisé à chaque appel de la fonction?
accumulators = [K.zeros(K.int_shape(p), dtype=K.dtype(p)) for p in params]
self.weights = accumulators
Comment est RMSProp
faisant la moyenne en cours d'exécution lorsque l'accumulateur est en cours de réinitialisation au début de chaque appel de mise à jour?
Cela a été source de confusion pour moi aussi quand j'ai vu le code, mais cette fonction n'est pas appelée à chaque mise à jour, elle est appelée une fois pour construire le graphique, voir https://github.com/fchollet/keras/issues/5125 –
Aussi la même question que l'issue https://stackoverflow.com/questions/41787873/how-adagrad-wroks-in-keras-what-does-self-weights-mean-in-keras-optimizer?rq=1 –