[Python]keras.optimizers.adam()でのエラーについて
久しぶりにディープラーニングの検証をしようと思い、kerasでVGG16モデルを実装しようとしていました。
検証環境
keras 2.11.0
tensorflow 2.11.0
optimizer:adam
こちらのサイトさせていただきました。
ところが以前は出なかったのですが、optimizerを定義する際、
AttributeError: module 'keras.optimizers' has no attribute 'Adam'
が発生しました。
解決法:
少し前からtensorflow内にkerasが実装されたようです(表現が正しくなかったらごめんなさい)。
呼び出す際は、
from tensorflow import keras
from tensorflow.keras.optimizers import Adam
のようにtensorflowからkerasをインポートします。
optimizerを定義する際はこのように定義することでエラーが解消しました。
adam=tensorflow.keras.optimizers.Adam()
model.compile(loss='categorical_crossentropy', optimizer=adam, metrics=['accuracy'])
詳細はkerasのドキュメントもご確認ください。
もし解決しないときは…
私は特に使いませんでしたが、adamのバージョンがadam_v2なるものに変更されているようです。kerasからインポートする際はこれを指定することで解決する場合もあるようです。この辺はkerasのバージョンにより変わってくるかと思います。ご参考までに。
何度も類似の課題は経験してきましたが、この辺のライブラリ仕様は日々変化します。今回の情報が皆さまのお役に立てると幸いです。