2020.07.20 · 技術と道具

Windows環境でKerasで作ったモデルを可視化するTips

昨日、TensorFlow+Kerasで作ったモデルをTensorFlow Servingで動作させるというネタを書いたのですが、今日はその作業中にちょっとハマったことに関するTipsです。

実行環境は下記のとおりです。

  • Windows 10
  • Anaconda 2020.02
  • Python 3.6
  • TensorFlow 1.15
  • Keras 2.2.5

Kerasで作ったモデルを可視化する

昨日の記事で作ったモデルを可視化するには、下記のようなコードを実行します。

PYTHON
import tensorflow as tf
import keras
from IPython.display import SVG
from keras.utils.vis_utils import model_to_dot

model = keras.models.load_model('iris-20200719.h5')

SVG(model_to_dot(model, show_shapes=True).create(prog='dot', format='svg'))

基本、これで良いのですが、ちょっとハマったんですよね。

Graphvizが必要

上記のコードを実行する前に、必要なパッケージをインストールしました。

POWERSHELL
pip install pydot
pip install graphviz

ただ、これだけではGraphVizの実行ファイルが見つからないから、パスを通せというエラー(pydot failed to call GraphViz.Please install GraphViz (https://www.graphviz.org/) and ensure that its executables are in the $PATH.)になります。これは、pipでインストールしたgraphvizが、Pythonラッパーでしかなく、GraphViz本体ではないからです。

ご丁寧にGraphVizのURLまで教えてくれるので、Windows用のGraphVizをインストールし、実行ファイルの存在するパス("C:\Program Files (x86)\Graphviz2.38\bin\" )を通したのですがなぜか、ダメ。Jupyter Notebook自体の再起動とかもしたんですがね…。

で、結局解決したのは下記の方法。

POWERSHELL
conda install graphviz-python

graphviz-pythonというのもPythonラッパーだと思うんですけど、これをインストールすると、先ほどインストールしたWindows用のGraphVizをアンインスールしても問題なくモデルが可視化できました。AnacondaのどこかにGraphVizの実行ファイルが入っているんだろうか?(特にパスを通すとかもしていない。)

可視化された画像が切れてしまう

いちおう、モデルを可視化した画像が表示されるようになったのですが、このように画像が切れてしまいました。

この問題は、下記のようにdpi=Noneを追加すると解決しました。

PYTHON
SVG(model_to_dot(model, show_shapes=True, dpi=None).create(prog='dot', format='svg'))

ということで、こんな感じにモデルの可視化ができると各レイヤーのインプットとアウトプットの型などが分かって便利なので、積極的に使っていきましょう。

2020/07/20 09:29
← TensorFlowで作ったモデルをTensorFlow S…
「使ってわかったAWSのAI」のKindle版が発売されてい… →
井上 研一
経済産業省推進資格ITコーディネータとして中小企業のDX・AI活用の現場で伴走支援を行う。「ITCプロセスガイドライン4.0」および「中小企業向けAI活用ガイド」執筆メンバー。著書・講演多数。ITエンジニアとして25年以上の実務経験。AI導入の実務に10年以上携わる。自ら開発したAIサービス「Gen2Go」が北九州発!新商品創出事業の認定を受ける。2026年4月より北九州市立大学大学院マネジメント研究科の学生としての顔も持つ。

本サイトおよびブログに掲載している内容は、特に明記のない限り、井上研一個人の見解に基づくものです。所属・関与する組織、団体、企業、研究会等の公式見解を示すものではありません。