2-05 5層目のEXCEL化

●5層目の重み係数をコピペ

 図2‐51はballs_dense56.xlsm(5, 6層目のEXCEL)のW5シートです。
 Pythonが生成した重み係数 w5_int.csvがコピペされています。
 5層目の重み係数は4種類(+64, +16, -16, -64)しかありません。したがってそれらは2ビットにエンコードできます。

図2‐51 

●5層目バイアスをコピペ

 図2‐52はCalculateシートです。バイアスb5_int.csvはこのシートの10行目にコピペします。

図2‐52 

●Visual Basic for Applicationウインドウからマクロ実行

 VBAからModule10を開き実行、更にModule11を開いて実行します。vbaoutputディレクトリに係数ROMのHDLファイルが16個生成され、開くと図2‐53のようにW5シートの各セルがエンコードされて横一行になっています(*1)。

(*1)-64=10, -16=11, +16=00, +64=01と2ビットにエンコード。それを横一行なので2x8 = 16ビットになる。このようにアドレス11ビット、データ16ビットのROMが16個になる

図2‐53 ROM_W5_00〜15.vhd。重み係数ファイル16個。推論IPの同ファイルと置き換え

●バイアスも必要。VBAで生成

 バイアスはModule12で生成します。開いて実行すると、vbaoutputディレクトリにdataB.txtが生成されます。出力128個なのでバイアスは128個あります(図2‐54)。conv_layer5.vhdのBIASの部分に貼り付けます。

図2‐54 dataB.txtにバイアス128個

目次へ戻る