旅行好きなソフトエンジニアの備忘録

プログラミングや技術関連のメモを始めました

【Python】 Kerasでモデルを図に保存する

Kerasでは作成したモデルはここ(可視化 - Keras Documentation)にあるように簡単に図として保存できるはず、と思ったのですが予想外のトラブルに見舞われたので解決方法をメモします。環境は以下の通りです。

トラブルの内容ですが、"from keras.utils.visualize_util import plot"の部分で"pydotやgraphvizが必要だ"といったような内容のエラーが出ました。そのためまずは

  • conda install graphviz
  • conda install pydot-ng

を実施したところ、"conda install graphviz"は問題無く終わったのですが、"conda install pydot-ng"はPython3.5では利用できないと言われます。仕方無く代わりに

  • pip install pydot

を実行し、モデルの保存を試みたのですが、今度は"from keras.utils.visualize_util import plot"の部分で"module ‘pydot’ has no attribute ‘find_graphviz’“というエラーが出ました。調べてみると、最新版のpydotからはfind_graphvizという関数は無くなっているらしく、最新版ではなくpydot1.1.0をインストールすると良いというアドバイスを見つけました。ところがpydot1.1.0をインストールしようとするとPython3.5では利用できないというエラーが。。。
打つ手無しのため、強硬策としてソースコードを変更することにしました。Anaconda3フォルダ配下の"Lib\site-packages\keras\utils"にvisualize_util.pyがあります。このファイルのfind_graphvizを使っている13-15行目を以下のようにコメントしました。

#if not pydot.find_graphviz():
#    raise ImportError('Failed to import pydot. You must install pydot'
#                      ' and graphviz for `pydotprint` to work.')

これでエラーは出なくなると思ったのですが、今度は"dot.exeが見つからない"といった内容のエラーが。。。ただ、このエラーについてはAnaconda3フォルダ配下の"Library\bin\graphviz"を環境変数のPATHに追加し、PCを再起動することで無くなり、無事モデルを図示できるようになりました。まとめると、Kerasでモデルを図として保存するには

  • conda install graphviz
  • pip install pydot
  • visualize_util.pyのfind_graphvizの部分をコメント
  • Anaconda3フォルダ配下の"Library\bin\graphviz"を環境変数のPATHに追加し、PCを再起動する

という手順を踏めば良いと思います。