今回の記事はPythonにてtensorflowを使用した際に生じる「module ‘tensorflow’ has no attribute ‘GraphDef’」のエラーの回避法の備忘録です。
module ‘tensorflow’ has no attribute ‘GraphDef’
このエラーが起きた際に確認する項目は一つだけ。
まずはtensorflowのバージョンが今何を使用しているかの確認です。
#コマンドで実行している方
pip show tensorflow
#jupyter notebookで実行している方
!pip show tensorflow
これを行いバージョンが2系になっている方はエラーになります。
Tesorflow1系に変更しても問題な方
エラー解消方法としては下記を実行します。
pip install tensorflow==1.15
実はtensorflowは1系と2系でモジュールの統合などが行われており、今までは普通に使えていたモジュールの「GraphDef」が使用できなくなっていると思います。
おそらくネットで拾ってきたコードが1系でのコードで皆さんいざ実行しようとした際に次sんの使っているバージョンと違うためにエラーになっているとおもわえれます。
1系に戻しても特に問題ないという方は上記のtensorflowインストールでエラー回避です。
どうしてもtensorflow2系を使いたい方
下記がなくなったモジュールですのでモジュールのインポート先を変更します。
tf.GraphDef() → tf.compat.v1.GraphDef()
また今回のエラーはこれで解消さえれますが他にもエラーがでます。
module 'tensorflow' has no attribute 'gfile'
このエラーの意味も同じでimportができなくなっているといっているのでこちらの「gfile」もインポート先を変更します。
tf.gfile.GFile() → tf.compat.v2.io.gfile.GFile()
これでうまくいくと思います。
ただ、他の箇所もモジュールのインポート先変わっているためのエラーがあるかどうかはコード次第ですので、モジュールがないと言われた場合はこの点注意してください。
では今回の記事は以上です。他にも多数の機械学習関連の記事を記載していますので、興味があればサイト内を見ていって下さい。
コメント