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


次のページへ



目次へ戻る