9-03 extras-5, 6層目のVHDL化(続き)

●パディングなし故に画素数が減る

 extras-6層目の畳み込みにはパディングがありません。
図9-42のように、3x3のカーネルを動かしながら積和演算を行います。このように計算した結果、出力は3x3画素になります。

図9-42 得られる結果は3x3

●stride = 1なのでbaseaddrは1づつ増える

 図9-43ではbaseaddrにcount3を加算して入力バッファのアドレスを生成してます。2層目、4層目はstride = 2でしたが、6層目はstride = 1なのでbaseaddrは1づつ増えていきます。縦方向も同様にラインを飛ばさずに演算します(この層はストライド2ではなくパディング0によって画素数が減る)。


図9-43 baseaddrが読み出しアドレスのベースになる

●ライン数が減ったがライン計算周期は前層と同じ

 1ライン(5画素)書きこむ周期は110.592msになります。図9-44のように3ラインぶん繰り返して1画面ぶん終了しますが、この後2ラインぶん休み期間を設けて前層と同期をとります。


図9-44 1ライン演算して書き込むようす

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

 extras-6層目も出力はテキストファイルに落とされます(図9-45)。3×3画素なので1画面で9行、また出力は256チャネルなのでビット幅は
8bit x 256= 2048bit になります。これをVBAで256個のCSVファイルに分割してPythonの結果と比較します。


図9-45 3x3画素なので9行、8ビットx256chで各行2048ビット

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

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

●extras-6層目のファイル類はここ

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

最初のページへ



目次へ戻る