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だと左から右になる。
出力された画像は、次の通り。
caffenetのネットワーク構造は次のようになっている。