Edited at

kerasのplot_modelでハマった話

More than 1 year has passed since last update.


概要

kerasにはネットワーク構造を可視化するためのモジュールを持っています。

モデルの可視化

これを見ると


plot.py

from keras.utils import plot_model

plot_model(model, to_file='model.png')

とだけ書いてあるので、すぐにでも使えそうな気がします。

でもちょっとハマってしまったので記録を残しておきます。


pydotとgraphvizの導入

上記のようなコードを実行すると、

'Failed to import pydot. You must install pydot and graphviz for pydotprint to work.'

というエラーが出ます。

どうやら、pydotprintとやらを動かすのにpydotとgraphvizというモジュールが必要なようです。

どちらもcondaから導入可能です。

ただし、

pydotは現在開発が止まっており、python3.5および3.6では動きません。

これらのバージョンのpythonを用いている環境では、

pydotplusまたはpydot-ngを代わりに使用することで対処できます。

私はpydotplusを使いました。


graphviz本体の導入

実は上でインストールしたgraphvizはpython用のラッパーなので、

本体をインストールする必要があります。

ここ からインストーラーがダウンロードできます。

インストールしたらパスを通せば使用できます。


最後に

この記事を書いたのは、plot_modelを使おうと試行錯誤する中でkerasのvis_utils.pyの記述ミスを見つけてそれを修正した結果上手くいったと思っていたからなのですが、再検証した結果修正の内容とは無関係であったことがわかったので最低限必要な手順だけを記録しておくこととします。