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)をいかに自動生成させるか」に頭を使うのが良いと思います。


目次へ戻る