2017-02-19 4 views
5

私は本当にKerasを初めて使っています。私のクエリがちょっとばかげている場合は、私を許してください。自分のシステムにKerasをデフォルトの方法でインストールしても問題ありません。私はKerasに新しいオプティマイザを追加して、model.compile関数の下で "optimizer = mynewone"と簡単に言えるようにしたいと思います。 Kerasの "optimizer.py"コードを変更し、その変更が私のKeras環境に反映されるようにするにはどうしたらいいですか?ここに私が試したものです:Kerasオプティマイザコードを変更するには

は私がrmspropから、私は次のエラーを取得するコードでrmspropsにオプティマイザの名前を変更するとします

model.compile(loss='binary_crossentropy', optimizer='rmsprops', metrics= ['accuracy']) 
Traceback (most recent call last): 

File "<ipython-input-33-40773d534448>", line 1, in <module> 
model.compile(loss='binary_crossentropy', optimizer='rmsprops', metrics=['accuracy']) 

File "/home/kiran/anaconda/lib/python3.5/site-packages/keras/models.py", line 589, in compile 
**kwargs) 

File "/home/kiran/anaconda/lib/python3.5/site-packages/keras/engine/training.py", line 469, in compile 
self.optimizer = optimizers.get(optimizer) 

File "/home/kiran/anaconda/lib/python3.5/site-packages/keras/optimizers.py", line 614, in get 
# Instantiate a Keras optimizer 

File "/home/kiran/anaconda/lib/python3.5/site-packages/keras/utils/generic_utils.py", line 16, in get_from_module 
str(identifier)) 

ValueError: Invalid optimizer: rmsprops 

私はoptimizers.pyをクリックしたときに、私はによって開発されたコードを取得私の環境のケラス。その後、コード内で、すべての "rmsprop"キーワードを "rmsprops"に置き換えてファイルを保存しました。だから私は私のシステムに更新されたoptimizers.pyを持たなければならないと思った。しかし、元のファイルに戻ってmodel.compileを実行すると、同じエラーがスローされます。

本当にありがとうございます。前もって感謝します。

答えて

0

あなたが望む新しいオプティマイザですか?カスタム目的関数ではありませんか?目標は定義が簡単なカスタムにすることができ、オプティマイザは手間がかかります。

多くのパラメータを持つ膨大な数のオプティマイザが既に存在します。しかし、もしあなたが本当にその道を下りたいなら、私はテンソルフローに行くことをお勧めします! それからあなたは使用できるようになりますthis in Keras

私はあなたのためにすることができますが、多分私は知らない別の方法があります。

1

あなたのアプローチは複雑で、必ずしもそうである必要はありません。あなたがkeras.optimizers.Optimizerをサブクラス化することにより、独自のオプティマイザを実装するとしましょう:

class MyOptimizer(Optimizer): 
    optimizer functions here. 

次に、あなたがこれを行うことができ、あなたのモデルでそれをインスタンス化する:

myOpt = MyOptimizer() 
model.compile(loss='binary_crossentropy', optimizer=myOpt, metrics= ['accuracy']) 

は同じようにあなたのオプティマイザのインス​​タンスを渡しますオプティマイザを使用するようになりました。

関連する問題