tf.keras.utils.plot_model()のエラー解決方法。graphvizのインストール。

tf.keras.utils.plot_model()を使おうとしてら、pydotとgraphvizをインストールするように言われますが、入れても動きませんでした。その解決方法について。

2023/3/10の情報です。

問題

tf.keras.utils.plot_model(model, show_shapes=True)

としたときに次のエラーが出ます。

 ImportError: You must install pydot (`pip install pydot`) and install graphviz (see instructions at https://graphviz.gitlab.io/download/) for plot_model/model_to_dot to work.

 

pip install pydot graphvizとすると、2つともインストールされるわけですが、それでもエラーが解決しませんでした。

解決方法

pip install graphvizで入る graphvizは認識していないようです。

$ pip install graphviz
Collecting graphviz
  Using cached graphviz-0.20.1-py3-none-any.whl (47 kB)

なんかバージョンが0.20.1とかなり古いもののような?python3向けではあるみたいですが。

 

そこで、graphvizを、エラーメッセージのリンク先の通りにインストールすると動きました。私の場合はmacですので、

brew install graphviz

としました。winやlinuxでは、(環境にもよりますが)aptを使うことになると思います。

 

brewで入るgraphvizのバージョンは7.1.0でした。

Installing graphviz
==> Pouring graphviz--7.1.0.ventura.bottle.tar.gz
🍺 /usr/local/Cellar/graphviz/7.1.0: 285 files, 6.5MB

 

その他

  • その後、pip uninstall graphvizとしても動きましたので、pipのgraphvizは不要のようです。
  • venvやcondaなどのvirtual環境の場合は、その環境下でインストールしましょう。それでも動かなければ、カーネルの再起動をしてみましょう。
  • 「最近のpydotはサポートが終了しているため、代わりにpydotplusをpip install pydotplusとして使う」という話もありましたが、これは関係ありませんでした。

環境

$ python –version
Python 3.9.6

$ python -c ‘import tensorflow as tf; print(tf.__version__)’
2.10.0

結論

tf.keras.utils.plot_model()を使うには、brewやaptで最新のgraphvizをインストールしましょう。

 

これを読んでいます。

Hands-on Machine Learning With Scikit-learn, Keras, and Tensorflow: Concepts, Tools, and Techniques to Build Intelligent Systems