私は、普段、信号処理の一つの手段としてDeep Learningのアルゴリズムを利用している。 そこで、信号処理についても調査した内容について整理していこうと思う。
まずは、信号処理を考える上で大事となるシステムブロック図を考えていく。 ただ、これは趣味のブログであるため、すぐには本題には入らない。
システムブロック図
まずブロック図をgraphvizを使いながら初めて行く。
graphviz
Graphvizはグラフを可視化するためのツールである。 「グラフ」とは計算グラムのようなノードと矢印によるデータ構造を意味する。 officialのサイトにサンプルがたくさん存在する。
graphvizを使って可視化しようと思ったきっかけ
今回、ゼロから作るDeep Learning③を学びながらスキルアップをしたいと考えたため。
ゼロから作るDeep Learning ❸ ―フレームワーク編
- 作者:斎藤 康毅
- 発売日: 2020/04/20
- メディア: 単行本(ソフトカバー)
私はmacOSを利用しているためHomebrewを使用して、graphvizをインストールした。
$brew install graphviz
ノードを結ぶ図を作る。
ゼロから作るDeep Learning③のP.185のステップ25に従い、絵をシステムブロック図を描いてみる。
sample.dotファイルに下記のように記載する。
digraph finite_state_machine { 1 [label="x", color=orange, style=filled]; 2 [label="system",color=lightblue, style=filled,shape=box]; 3 [label="y", color=orange, style=filled]; 1 -> 2 [ label = "入力" ]; 2 -> 3 [ label = "出力" ]; }
ターミナルから下記のコマンドを実行する。
dot sample.dot -T png -o sample.png
下記のようなシステムブロック図を描くことができた。
ノードを結ぶ図を横展開するようにする。
rankdir=LR
を追加することでグラフを横向きに展開することができた。
digraph finite_state_machine { rankdir=LR; 1 [label="x", color=orange, style=filled]; 2 [label="system",color=lightblue, style=filled,shape=box]; 3 [label="y", color=orange, style=filled]; 1 -> 2 [ label = "入力" ]; 2 -> 3 [ label = "出力" ]; }
参考文献
ゼロから作るDeep Learning ❸ ―フレームワーク編
- 作者:斎藤 康毅
- 発売日: 2020/04/20
- メディア: 単行本(ソフトカバー)