[Windows・jupyter notebook]機械学習のモデル可視化に使えるソフト「Graphviz」をインストール・使用する方法


以前話題になった、東大松尾研究室公開の無料ディープラーニング教材「DL4US」を写経する際、Graphviz部分のエラーに悩まされたので、後の人が苦しまないようメモとして残します。

インストール前に発生するエラー

1.1.4モデルの可視化
from IPython.display import SVG
from tensorflow.python.keras.utils.vis_utils import model_to_dot

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

Graphvizに関する設定が済んでいない場合、Lesson1 手書き文字認識をしよう(ニューラルネットワーク入門)において上記コードを実行すると、以下のような2つのエラーが出てくる。

エラー

InvocationException: "GraphViz's executables not found"

ImportError: Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work.

1つ目のエラーは、Graphviz本体がインストールできてない事によるもの。
2つ目のエラーは、pydot・graphvizモジュールが見つからないことを示している。

これらを解消するためには、Graphviz本体がインストール・pydot・graphvizモジュールの導入が必要となる。Graphviz本体とgraphvizモジュールは異なるものなので注意すること。

Graphviz本体のインストール

いろいろ調べた際は公式サイトからインストールできるという記事が多かったが、ボタン1つでできる仕様でなかったためよくわからなかった。

今回は、PowerShellにて使えるパッケージ「chocolatey」を用いてインストールを行う。chocorateyとは、macにおけるHomebrewのようなwindows用パッケージマネージャである。

chocoratey自体を導入するには、PowerShellを管理者権限で開いて以下のコードを入力すればよい。

chocoratey導入コマンド
iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex

ただし、PowerShellの実行ポリシー設定によっては、以下のようなエラーが出て導入できない場合がある。

実行ポリシーによるエラー
& : このシステムではスクリプトの実行が無効になっているため、ファイル〇〇を読み込むことができません。
詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。

これは、PowerShellの実行ポリシーが「restricted」になっているのが原因なので、以下のように「unrestricted」へ設定を変えることで、chocoratryを導入できるようになる。

設定の変更
Set-ExecutionPolicy unrestricted -Scope CurrentUser

念の為、導入が済んだら実行ポリシーの設定を「restricted」に戻しておく。

chocorateyが導入できたら、ようやくGraphviz本体のインストール。PowerShellを管理者権限で開き、pipと似たような形式でコードを書けばよい。

choco install graphviz

パッケージ名はchocoratryだが、実行する際のコードは「choco」なので注意。加えて、管理者権限で開いたPowerShellを使わないと、アクセス拒否によるエラーが発生する。

pydot・graphvizモジュールのインストール

モジュールのインストールに関しては、王道とも言えるpipを使って簡単にインストールできる。

pydotモジュールが正常に動かない場合。代わりにpydotplusまたはpydot-ngを使うとよい。自分はpydotplusを使っている。

動作確認

記事冒頭のコードを書き、以下のような出力が得られれば、無事インストールは成功である。

まとめ

機械学習のモデル可視化に使えるソフト「Graphviz」について、windows用パッケージ「chocolatey」を用いてインストールする方法を示しました。

10分程度で終わる作業なので、機械学習の勉強を試みる人はこれを機に「Graphviz」を使ってみてください。

記事を書くきっかけとなった「DL4US」は、機械学習の概要が大まかにわかる良質なコンテンツです。本1冊に相当するボリュームにもかかわらず無料で読めるとは素晴らしい。

参考文献

DL4US
Windows版homebrew的存在、Chocolateyを使う
PowerShellでスクリプトを実行するとセキュリティエラーになるときの対策
kerasのplot_modelでハマった話