[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のバージョンにより変わってくるかと思います。ご参考までに。

何度も類似の課題は経験してきましたが、この辺のライブラリ仕様は日々変化します。今回の情報が皆さまのお役に立てると幸いです。


この記事が気に入ったらサポートをしてみませんか?