2-04 4層目のEXCEL化

●4層目の重み係数とバイアスをコピペ

 図2‐41はballs_layer4.xlsm(4層目のEXCEL)のW4_Biasシートです。
 Pythonが生成した重み係数 w4_int.csvがコピペされています。バイアスb4_int.csvは580行目にコピペします。
 4層目の重み係数は4種類(+64, +16, -16, -64)しかありません。したがってそれらは2ビットにエンコードできます。

図2‐41 

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

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

(*1)-64=10, -16=11, +16=00, +64=01と2ビットにエンコード。それを横一行なので2x128 = 256ビットになる。ROMDATAは0〜143まで(入力64ch/4 = 16ch, カーネル3x3なので16x9 = 144)


図2‐43 ROM_W4_00〜03.vhd。重み係数ファイル4つ。推論IPの同ファイルと置き換え

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

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

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

目次へ戻る