参考書通りにコーディングしてみたところエラー・・・・。
たしかに環境は違うけれど困る。
【エラーメッセージ】
>>> sgd = optimizers.SGD(lr=0.01, clipnorm=1.)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'keras.optimizers' has no attribute 'SGD'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'keras.optimizers' has no attribute 'SGD'
>>> import keras
>>> keras.__version__
'2.6.0'>>> from keras import optimizers
>>> keras.__version__
'2.6.0'>>> from keras import optimizers
dirコマンドでoptimizersを確認すると確かにSGDはなく、仕様が変更されたのかな・・・。
検索しても意外に情報が少なくもしかしてあたりまえ?常識
とりあえず無事別の方法を発見、ついでにオプションのlrは非推奨になったようで変わりにlearning_rateを使用するらしい。
【代替え?】
>>> sgd = optimizers.gradient_descent_v2.SGD(lr=0.001, clipnorm=1.)
/home/xx/.local/lib/python3.7/site-packages/keras/optimizer_v2/optimizer_v2.py:356: UserWarning: The `lr` argument is deprecated, use `learning_rate` instead.
"The `lr` argument is deprecated, use `learning_rate` instead.")
--------------------------------------------
【追記】
kerasはtensorflow.kerasとしてTensorFlow2にで組み込まれたようです。単独のkerasの使い方が変わっているようです。
助かりました
返信削除optimizers.gradient_descent_v2.SGD(lr=0.001, clipnorm=1.) に変更して動きました。
7月には動いていたのに・・・
返信削除