普段、深層学習のモデルの説明をする際に苦労することはありませんか。
私は、資料作りに苦労することあります。
今日は、深層学習の計算グラフの可視化方法に触れます。
Kerasやtensorflowを普段利用してる場合でしたら、tensorboardを使えば、可能ですが、本日はpythonを用いてみます。
参考図書
ゼロから作るDeep Learning ❸ ―フレームワーク編
- 作者:斎藤 康毅
- 発売日: 2020/04/20
- メディア: 単行本(ソフトカバー)
y=x1+x2
2変数の足し算を行ってみます。
基本的には、dezero
のutils.py
のget_dot_graph
を用いて可視化します。
y=x1+x2
をnumpyを用いて計算する際に、x0.name
とx0
のVariableインスタンス属性に名前を設定します。
この変数をget_dot_graph
に引数として渡し、下記pythonコードを実行することで計算グラフを可視化することができます。
import numpy as np from dezero import Variable from dezero.utils import get_dot_graph x0 = Variable(np.array(1.0)) x1 = Variable(np.array(1.0)) y= x0+x1 # 変数に名前を付ける。 x0.name="x0" x1.name="x1" y.name="y" txt=get_dot_graph(y, verbose=False) print(txt) with open("sample.dot","w") as o: o.write(txt)
dotコマンドの自動化
なるべく自動化したいので、普段私は、コマンド実行する際に、Makefileでpython実行とdotコマンドの実行を行います。
Makefileの例を下記に示しますのでご確認いただけたらと思います。
all: scratch_dot_img.py python scratch_dot_img.py dot sample.dot -T png -o sample.png
コマンド実行
make