2-03 3層目のEXCEL化
●3層目の重み係数とバイアスをコピペ
図2‐31はballs_layer3.xlsm(3層目のEXCEL)のW3_Biasシートです。
Pythonが生成した重み係数 w3_int.csvがコピペされています。バイアスb3_int.csvは292行目にコピペします。
3層目の重み係数は4種類(+64, +16, -16, -64)しかありません。したがってそれらは2ビットにエンコードできます。 |

図2‐31
●Visual Basic for Applicationウインドウからマクロ実行
VBAからModule10を開き実行、更にModule11を開いて実行します。vbaoutputディレクトリに係数ROMのHDLファイルが2つ生成され、開くと図2‐32のようにW3_Biasシートの各セルがエンコードされて横一行になっています(*1)。
(*1)-64=10, -16=11, +16=00, +64=01と2ビットにエンコード。それを横一行なので2x64
= 128ビットになる。ROMDATAは0〜143まで(入力32ch/2 = 16ch, カーネル3x3なので16x9
= 144) |

図2‐33 ROM_W3_00〜01.vhd。重み係数ファイル2つ。推論IPの同ファイルと置き換える
●バイアスも必要。VBAで生成
バイアスはModule12で生成します。開いて実行すると、vbaoutputディレクトリにdataB.txtが生成されます。出力64chなのでバイアスは64個あります(図2‐34)。conv_layer3.vhdのBIASの部分に貼り付けます。 |

図2‐34 dataB.txtにバイアス64個
目次へ戻る |