8-09 4,5,6層目のVHDLファイル自動生成(EXCEL+VBA)
●画像・係数ROMファイルはたくさんあるので自動生成させる
画像ROMや重み係数ROMは各層違ったものになります。それぞれファイルの数が非常に多いので、EXCEL+VBAでVHDLを自動生成させます。 |
●4層目
表8-04にconv_layer4.xlsmのVBAマクロとその機能などを示します。
表8-04 conv_layer4の主なVBAマクロ一覧
モジュール名 |
マクロ名 |
機能 |
ファイル数 |
Module10 |
makeTextW4 |
重み行列ROM用のテキストファイル生成 |
1024 |
Module11 |
margeTextW4 |
重み行列ROMのVHDLファイルを生成 |
1024 |
Module12 |
makeROM4 |
上のファイルを32個づつまとめたVHDL生成 |
32 |
Module14 |
makeCL4 |
上のファイルと積和演算回路、セレクタなど加えたVHDL生成 |
32 |
Module16 |
makeTextPix |
入力画像ROM用のテキストファイル生成 |
32 |
Module17 |
margeTextPix |
入力画像ROMのVHDLファイルを生成 |
32 |
Module13 |
makeTextB4 |
バイアス用テキストファイル生成 |
1 |
|
●5層目
表8-05にconv_layer5.xlsmのVBAマクロとその機能などを示します。
表8-05 conv_layer5の主なVBAマクロ一覧
モジュール名 |
マクロ名 |
機能 |
ファイル数 |
Module9 |
makeTextW5 |
重み行列ROM用のテキストファイル生成 |
2048 |
Module10 |
margeTextW5 |
重み行列ROMのVHDLファイルを生成 |
2048 |
Module11 |
makeROM5 |
上のファイルを64個づつまとめたVHDL生成 |
32 |
Module12 |
makeCL5 |
上のファイルと積和演算回路、セレクタなど加えたVHDL生成 |
32 |
Module14 |
makeTextPix |
入力画像ROM用のテキストファイル生成 |
32 |
Module15 |
margeTextPix |
入力画像ROMのVHDLファイルを生成 |
32 |
Module16 |
makeTextB5 |
バイアス用テキストファイル生成 |
1 |
|
●6層目
表8-06にconv_layer6.xlsmのVBAマクロとその機能などを示します。
表8-06 conv_layer6の主なVBAマクロ一覧
モジュール名 |
マクロ名 |
機能 |
ファイル数 |
Module10 |
makeTextW6 |
重み行列ROM用のテキストファイル生成 |
4096 |
Module11 |
margeTextW6 |
重み行列ROMのVHDLファイルを生成 |
4096 |
Module12 |
makeROM6 |
上のファイルを64個づつまとめたVHDL生成 |
64 |
Module13 |
makeCL6 |
上のファイルと積和演算回路、セレクタなど加えたVHDL生成 |
64 |
Module15 |
makeTextPix |
入力画像ROM用のテキストファイル生成 |
64 |
Module16 |
margeTextPix |
入力画像ROMのVHDLファイルを生成 |
64 |
Module17 |
makeTextB6 |
バイアス用テキストファイル生成 |
1 |
|
●とにかくファイルの数が多いのでVBAを使うしかない
上表のように重み係数のファイルが4096個もある場合、人間がコピペで作成するのはほぼ不可能です。ディープラーニングにおいてはファイル数が膨大になりがちですが、それらには「強い規則性」が存在します。したがって「回路(VHDL)をいかに自動生成させるか」に頭を使うのが良いと思います。 |
目次へ戻る |