8-01 vgg-1層目のVHDL化(続き)
●シムの結果をテキストファイルに保存
1層目の出力はenv(シム用環境ファイル)にも送られ、relu.outというテキストファイルに書き込まれます。それを開くと図8‐12のように各行に時刻、バッファ番号、メモリアドレス、画素データが書かれています。
1層目の出力は64チャネルあり、それぞれ5ビットなので、画素データは320ビットの2進数になっています。 |
図8‐12 relu.outに1層目の出力が書かれる
●シムは1画像ぶん、300×300画素
図8‐13はrelu.outの最後の部分、1層目の入力画像は300×300画素なので、全部で90000行あります。これをPythonの結果と比較します。 |
図8‐13 522msで300×300、1画面の処理終了
●relu.outそのままではPythonと比較できない
PythonでSSD物体認識を実行した際、各層の出力をCSVファイルに落としました。それらはこのように画素値を300行×300列に並べたものです。シミュレーション結果(relu.out)はそうなっていないので、画素値を並び替える必要があります。
並び替えにはEXCELのVBAを使います。まずこのEXCELを適当なフォルダ(仮にC:\SSD\EXCELとする)に置きます。
そのフォルダにサブフォルダvbaoutputを作成し、relu.out(これを解凍)をそのフォルダ(C:\SSD\EXCEL\vbaoutput)に置きます。
EXCELをスタートし、開発タブからVisual Basicを選択し、VBAの画面を開きます。
VBAProjectから標準モジュールのModule20を開きます(図8‐14)。 |
図8‐14 EXCELのVBAを使ってrelu.outを加工する
●とりあえず画素データだけを取り出した
Module20を実行すると図8‐15のように、EXCELシートの上に「simrelu.txtに書き出しました」とウインドウが現れます。vbaoutputフォルダにsimrelu.txtが生成されますが、それはrelu.outから画素データを取り出してコンマ区切りにしただけであり、まだ並び替えが必要です。 |
図8‐15
次のページへ
目次へ戻る |