1-02 本企画のロードマップ

 本企画では図1-05のようにディープラーニングのハードウエア化を進めます。一番上の@からスタート、一番下のDがゴールです。

@
Python(小数)で画像認識(10,000枚)

 まずはPythonで書かれたプログラムを普通に実行します。
 10,000枚のテスト画像(x)で推論を行い、正解率(Accuracy)を確認します。


APython(
整数)で画像認識(10,000枚)

 パソコンで計算するぶんには小数でよいのですが、FPGAでは小数の演算は行えません(*1)。したがってPythonの段階から
整数化して実行します。
 10,000枚のテスト画像(x)で推論を行います。整数化によって
正解率は低下しますが、それが許容範囲か確認します。
 テスト画像1枚分のデータ、重みの行列(W)、バイアスの配列(b)をファイルに落とします。これらはすべて整数になっています。
 必要に応じて計算の途中経過もファイルに落とします。

(*1)FPU(Floating Point Unit)を内蔵していれば行えるが、そのようなFPGAは少数派である

zu1-05


BEXCELで画像認識(1枚)

 Aで得られたテスト画像(x)一枚分のデータ、重みの行列(W)、バイアスの配列(b)をEXCELに貼り付けます(値はすべて整数)。
 Pythonでの処理をEXCELに移植して推論を行います。
 推論の結果をPythonのものと比較します。
すべて整数なので演算結果、途中経過ともにピタリ一致します


C
VHDLで記述して論理シミュレーション

 Aで得られたテスト画像(x)一枚分のデータ、重みの行列(W)、バイアスの配列(b)をVHDLに貼り付けます(値はすべて整数)。
 EXCELでの処理をVHDLに移植して推論を行います(論理シミュレータ上で)。
 推論の結果をEXCELのものと比較します。すべて整数なので演算結果、途中経過ともにピタリ一致します。


D
FPGAに実装して画像認識

 Cで作成したVHDLを論理合成してFPGAにプログラミングします。
 シミュレーションどおりに実機動作するか確認します。


●Pythonの環境のない人はBのEXCELからスタート

 Pythonの実行環境がある人はBのEXCELを飛ばしてAからCに進んでも構いません。Pythonの環境のない人はBのEXCELからスタートしましょう。

目次へ戻る