スポンサーリンク

【Tensorflow】「module ‘tensorflow’ has no attribute ‘GraphDef’」のエラー回避方法。

TensorFlow
スポンサーリンク

今回の記事は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()  

これでうまくいくと思います。
ただ、他の箇所もモジュールのインポート先変わっているためのエラーがあるかどうかはコード次第ですので、モジュールがないと言われた場合はこの点注意してください。

では今回の記事は以上です。他にも多数の機械学習関連の記事を記載していますので、興味があればサイト内を見ていって下さい。

コメント

タイトルとURLをコピーしました