どうも、こんにちは。
めっちゃ天気いいのにPCばっかいじってます。
今回は、kerasのkeras.utils.visualize_utilの中にあるplotモジュールを使って、モデルの可視化をしてみましょう!
まえがき
あえて作図をしなくても、モデルの設計者は構造を理解していることでしょう。じゃなきゃネットワークをつくれませんもんね。笑
しかし僕のように機械学習の勉強を始めたばかりの人にとって、ネットワークの構造を目で確認できるというのはかなり大きいと思います。また第三者にモデルの設計をすぐに理解して欲しい時には、グラフや図がおおいに役立つはずです。人間がいかに視覚的な情報に頼っていることか・・・。
さて、作図を可能にするために1つずつ準備していきましょう.
STEP1
$ brew install graphviz
STEP2
python3の場合はpydot_ngをinstallすることによって, 作図が可能になります.
pydot_ngに関する情報を提供してくれた, nzw様ありがとうございます.
$ pip install pydot_ng
とすると、
Successfully built pydot-ng Installing collected packages: pydot-ng Successfully installed pydot-ng-1.0.0
サクッとinstallできると思います.
そして本当に親切なコメントで、ソースのリンクまで貼ってくださいました。 keras/visualize_util.py at master · fchollet/keras · GitHub
こちらで書かれているようにpydot_ngをインストールすれば、そっちを見てくれるようになっているのですね。
try: # pydot-ng is a fork of pydot that is better maintained import pydot_ng as pydot except ImportError: # fall back on pydot if necessary import pydot if not pydot.find_graphviz(): raise RuntimeError('Failed to import pydot. You must install pydot' ' and graphviz for `pydotprint` to work.')
常識なのかもしれませんがソースのこういう部分から依存関係を知れると・・・。
大変勉強になりました。
以下はインストール後、実際に画像を生成する部分です。インスールしてしまえば同じなので、もしよろしければ参考にしてください。
STEP3 実際に動かしてみる
今回もmnistのサンプル使います。
エディタでkeras/exampleの中にあるmnist_cnn.pyを開いてください。
まずはモジュールのimport
from keras.utils.visualize_util import plot
そしてmodelを組んだあとにplotします.
plot(model, to_file='model.png')
可視化だけが目的の場合、モデルの設計が終わったらplotを呼び出すだけで十分なようです!
plotにより作成されたグラフがこれ。
いや〜素晴らしいですね。
まとめ
- kerasでモデルを視覚化する方法を紹介しました。
まだまだ奥があるkeras。
どんどん解剖してきたいですね。
以上です。