覚え書きブログ

Deep Learning覚え書き(ネットワーク構造の可視化編)

Caffeのprototxtで設定されているネットワーク構造を可視化してみた。
以下のサイトを参考にした。
http://iamrobotandproud.hatenablog.com/

まず、pipでgraphvizとpydotモジュールをインストール。

> sudo pip install graphviz
> sudo pip install pydot

次に、GraphViz本体をインストール。

> sudo apt-get install graphviz

draw_net.pyを実行してみたとろこ、下記のようなエラーがでた。

>python/draw_net.py examples/mnist/lenet.prototxt /tmp/lenet.png
Couldn't import dot_parser, loading of dot files will not be possible.
Drawing net to /tmp/caffenet.png

下記のサイトによるとpyparsingモジュールのバージョンが2.xなのが原因らしい。
http://stackoverflow.com/questions/15951748/pydot-and-graphviz-error-couldnt-import-dot-parser-loading-of-dot-files-will

そこで、pyparsing2.xを削除して、1.xをインストールしてから再度pydotをインストールした。

>sudo pip uninstall pyparsing
>sudo pip uninstall pydot
>pip install -Iv https://pypi.python.org/packages/source/p/pyparsing/pyparsing-1.5.7.tar.gz

再度、draw_net.pyを実行したところ、エラーは出なかった。

>python/draw_net.py examples/mnist/lenet.prototxt /tmp/lenet.png
Drawing net to /tmp/lenet.png

デフォルトだと、横向き(左から右)になっているので、縦向き(下から上)にするためには、rankdirオプションを以下のように設定する。

>python/draw_net.py examples/mnist/lenet.prototxt /tmp/lenet.png --rankdir BT

ちなみに、TBだと、上から下で、RLだと左から右になる。

出力された画像は、次の通り。
f:id:hirotaka_hachiya:20150509172306p:plain

caffenetのネットワーク構造は次のようになっている。
f:id:hirotaka_hachiya:20150610212454p:plain