こんにちは。
ディープラーニングお兄さんの”はやぶさ”@Cpp_Learningです。
前回、Sony製の深層学習フレームワーク “Neural Network Libraries(NNabla)” と学習済みモデル(HDF5)を使って推論を実践するチュートリアル記事を書きました↓
↑記事の終盤で学習済みモデル”MyChain.nnp”を保存しました。
今回は、この”MyChain.nnp”に保存してある”ニューラルネットワークの構造”を可視化します。
Contents
Neural Network Libraries(NNabla)と学習済みモデル
“Neural Network Libraries”の場合、ニューラルネットワークを以下の形式で保存します。
ファイル | 内容 |
net.nntxt | ニューラルネットワークの構造(アーキテクチャ) |
parameters.h5 | ニューラルネットワークの重み(パラメータ) |
net_param.nnp | ニューラルネットワークの構造と重み |
つまり、学習済みモデル”MyChain.nnp”にはニューラルネットワークの構造と重みの情報が保存してあります。
Python Command Line Interface
“Neural Network Libraries”にはCommand Line Interface(以下 nnabla_cli)があり、コマンドラインにコマンドを入力することで様々な処理をすることができます。
nnabla_cliの使い方については、以下の公式ドキュメントをご参照ください↓
nnabla_cliでニューラルネットワークの構造を可視化
nnabla_cliを使い*.nntxtまたは*.nnpに保存してあるニューラルネットワークの構造を可視化することができます。
↑記事で保存した学習済みモデル”MyChain.nnp”をnnabla_cliで可視化したもの↓
コマンド1つで簡単にニューラルネットワークの構造を描画してくれるので、nnabla_cliとても便利です!
以降でnnabla_cliを使ったネットワーク構造の描画方法を説明します。
Graphvizインストール
ネットワーク構造を描画には、Graphviz – Graph Visualization Softwareが使われています。
そのため、まずはGraphvizをインストールします。
GraphvizはUMLツールのPlantUMLでも使うので、インストール済みの人もいるかもしれません。
WindowsにGraphvizをインストールする方法は以下の記事で紹介しています。
私の場合、Windows Subsystem for Linux(WSL)にNNablaの環境構築をしました(WSLにNNablaをインストールする方法は以下の記事で紹介しています)
なので本記事では、WSL(Ubuntu)にGraphvizをインストールする方法を紹介します。
以下のコマンドでインストール
sudo apt install graphviz
以上!
ニューラルネットワークのグラフを描画
以下のコマンドでニューラルネットワークのグラフを描画できます。
nnabla_cli draw_graph -o [output-folder] [path-to-nnp.nnp]
あるいは、cdコマンドで”MyChain.nnp”が保存してあるディレクトリまで移動して、フォルダ指定しない以下のコマンドでもOKでした。
nnabla_cli draw_graph MyChain.nnp
なお、↑のコマンドを使うと”draw_out”というディレクトリが自動生成され、その中に”MyChain.png”が保存してありました。簡単!
まとめ
“Neural Network Libraries”のnnabla_cliを使って簡単にニューラルネットワークの構造を描画することができました。
nnabla_cliを使えばコマンドラインから様々な処理を実行できるので便利です!
Sony様すごい!素敵なツールをありがとう!!