8‐02 3層目の重み係数とバイアスのHDL生成

●4種類に限定された係数シート

 ここでPythonをEXCEL化した際の3層目のファイル(TS_layer3.xlsm)を開きます。W3_Biasシートに重み係数がありますが、それらは
4種類(+64, +16, -16, -64)しかありません(図8‐04)。


図8-04 みな2の乗数なのでビットシフト乗算できる

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

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

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

図8‐05 ROM_W3_00〜01.vhd。重み係数ファイル2つ

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

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

図8‐06 dataB.txtにバイアス64個


最初のページへ


目次へ戻る