8-07 vgg-14, 15層目のVHDL化(続き)

●ラインバッファの読み出し選択を見る

 図8‐129は論理シミュレーションのラインバッファ読み出し選択の部分です。oddline, midline, newlineそれぞれ12,4,10になっています。このコンビネーションが27.648ms続きます(1ラインの周期)。


図8-129 バッファを選択する3つの信号

●左端の画素の畳み込みを見る

 図8‐130のRD_BUF_ADDRはラインバッファの読出しアドレス、RD_BUF_SELはラインバッファの選択信号です(意図的に1サイクル遅らせてある)。0, 6, 12と横方向に6つおきのアドレス、12, 4, 10と縦方向に6つおきのバッファ選択になっています。


図8-130 画素の選択とバッファの選択

●右端の画像の畳み込みは

 図8‐131は1ライン畳み込みの最後の画素の部分、18, 24, 30と横方向に6つおきのアドレス(padding = 6 のおかげで最後の画素アドレスは30になる)、12, 4, 10と縦方向に6つおきのバッファ選択になっています。


図8-131 19x19がパディングで31x31となったので最後は18, 24, 30


●畳み込み以外はほぼ前層と一緒(出力は1024chに増える)

 パディングやダイレーションの違いはあるものの画素数は19x19のままなので1ラインの計算周期は前層と同じ27.648msになります。また次層はカーネルが1x1なので出力用のバッファは2個あれば十分です(RAM_X2_00, 01)。


図8‐132 1ラインに27.648ms、1画面の計算はその19倍になる

●relu.outに出力が書かれている

 14層目も出力はテキストファイルに落とされます。19×19画素なので1画面で361行、また出力は1024チャネルなのでビット幅は 5bit x 1024 =
5120bit になります。これをVBAで1024個のCSVファイルに分割してPythonの結果と比較します。

●バッチファイルでまとめて比較する

 CSVファイルが1024個もあるので、前層までと同様にバッチファイルによって比較し、全てのチャネルがピタリ一致することを確認します。

●14層目のファイル類はここ

プロジェクトのアーカイブ
EXCEL+VBA
relu.out
Pythonの結果
バッチファイル

次のページへ



目次へ戻る