計算グラフの可視化

普段、深層学習のモデルの説明をする際に苦労することはありませんか。

私は、資料作りに苦労することあります。

今日は、深層学習の計算グラフの可視化方法に触れます。

Kerasやtensorflowを普段利用してる場合でしたら、tensorboardを使えば、可能ですが、本日はpythonを用いてみます。

 参考図書

ゼロから作るDeep Learning ❸ ―フレームワーク編

ゼロから作るDeep Learning ❸ ―フレームワーク編

  • 作者:斎藤 康毅
  • 発売日: 2020/04/20
  • メディア: 単行本(ソフトカバー)

y=x1+x2

2変数の足し算を行ってみます。 基本的には、dezeroutils.pyget_dot_graphを用いて可視化します。 y=x1+x2をnumpyを用いて計算する際に、x0.namex0の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)

f:id:unachan_kz:20200606211229p:plain

dotコマンドの自動化

なるべく自動化したいので、普段私は、コマンド実行する際に、Makefilepython実行とdotコマンドの実行を行います。

Makefileの例を下記に示しますのでご確認いただけたらと思います。

all: scratch_dot_img.py
    python scratch_dot_img.py
    dot sample.dot -T png -o sample.png

コマンド実行

make