FC2カウンター FPGAの部屋 2020年05月14日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

DPU on PYNQ をやってみる3(dpu_mnist_classifier.ipynb をやってみた)

DPU on PYNQ をやってみる2(dpu_inception_v1.ipynb をやってみた)”の続き。

前回は、DPU on PYNQ の dpu_inception_v1.ipynb をやってみた。今回は、 dpu_mnist_classifier.ipynb をやってみよう。

今回はおなじみの MNIST の手書き文字を認識する。ネットワークは CNN で、MNISTデータセットでトレーニングされ、Vitis AIコンパイラツールを使用して量子化されて、DPUに展開されている。

1. Prepare the overlay
overlay をボードにダウンロードする。対応するDPU モデルを読み込む。

rom pynq_dpu import DpuOverlay
overlay = DpuOverlay("dpu.bit")
overlay.load_model("dpu_mnist_classifier_0.elf")


これで、Ultra96 -V2 がコンフィグできて、DONE ランプが点灯した。

2. Load test data
メソッドを紹介する。

test_images() : numpy配列として保存されたテスト画像を返す。各画像はグレースケールの 28 x 28 ピクセル。 0 〜 9 の数字。
test_labels(): numpy配列として保存された正しいラベルのリストを返す。

あまり引用してもまずいので、結果だけ示す。後は、dpu_mnist_classifier.ipynb を見てください。

結果はこんな感じ。
DPU-PYNQ_29_200512.png

In [8] では、 10 個の手書き文字を正しく推論できている。
In [9] では、10000 個の手書き文字認識精度は 0.9858 つまり、 98.58 % だった。
実行時間は 5.9878 sec なので、1670.0712 FPS となった。
手書き文字認識 1 個あたりの実行時間は、5.9878/10000 = 0.00059878 sec で約 599 us となった。

今回の MNIST は how to deploy a user-trained DPU model on PYNQ image だと言うので、自分でトレーニングした推論をやってみたい。
  1. 2020年05月14日 05:00 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0