カスタマーケラスOptimizer
を作成すると、workhorse関数はOptimizer.get_updates()
になります。私は固定ステップ・オプティマイザを作成することができましたが、関数の以前の呼び出しから計算された値を使用する必要がある実行平均などの方法をどうやって行うのかはわかりません。独自のKerasオプティマイザの作成
たとえば、consider RMSprop
。関数の呼び出しごとにアキュムレータがリセットされていませんか?
accumulators = [K.zeros(K.int_shape(p), dtype=K.dtype(p)) for p in params]
self.weights = accumulators
どうRMSProp
は、アキュムレータが各更新コールの開始時にリセットされている移動平均をしているのですか?
コードを見たときに私も混乱しましたが、すべてのアップデートで呼び出されるのではなく、グラフを作成するために呼び出されました。https://github.com/fchollet/keras/issues/5125 –
また、問題と同じ質問https://stackoverflow.com/questions/41787873/how-adagrad-wroks-in-keras-what-does-self-weights-mean-in-keras-optimizer?rq=1 –