●なぜEXCEL化するのか
SSDのプログラムはPythonで書かれていますが、ここではそれをEXCELに移植します。その目的は以下の通り。
@演算のイメージをつかむ
入力のどのチャネルがどの重み係数にかかるか、出力はどの重み係数から生成されるかといったイメージをつかみます。また畳み込みやプーリング、パディングなどはPytorchの関数としてブラックボックス化されています。したがってPytorchのドキュメントを読む必要がありますが、EXCELで計算させた結果をPythonと比較すれば正しく理解しているかどうか確認できます。
A演算の途中経過が分かる
Pytorchの関数を使うと複雑な演算が一行で済んだりして便利です。しかし裏返すと途中経過を見れないことになり、将来的にHDL化してシミュレーションする際にデバグが困難になります。EXCEL化したものがあれば途中経過をシミュレーションと比較することができます。
BHDLの自動生成ができる
SSDは重み係数などが膨大で、HDLファイルも数千〜数万個になり、手作業でHDL化するのは不可能になります。EXCELにはVBA
(Visual Basic for Application) という機能があるので、それを使ってHDLを自動生成します。 |