FC2カウンター FPGAの部屋 Kerasを使用したMNIST CNNで手書き文字認識6(実機確認3)
fc2ブログ

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

FPGAの部屋

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

Kerasを使用したMNIST CNNで手書き文字認識6(実機確認3)

Kerasを使用したMNIST CNNで手書き文字認識5(実機確認2)”の続き。

前回は、アプリケーションソフトを動作させて、自分で書いた手書き数字を認識させたが、1, 4, 6, 7 が誤認識してしまった。以前の 10 個の特徴マップのCNN では、正常に認識しているので、量子化の精度、および飽和演算に問題があるのか?はたまた過学習になっているのかを検証することになった。今回は、考えられる 2 つの原因の内の量子化の精度、および飽和演算について検証を行った。

量子化の精度、および飽和演算について検証方法は、現在、以前の 10 個の特徴マップのCNN で行っている浮動小数点数によるCNN の演算を今回の特徴マップが 3 個のCNN で行うことだ。こうすれば、量子化の精度、および飽和演算がまずいのであれば、今回の特徴マップが 3 個のCNN の浮動小数点数による演算では、正常に手書き数字が認識できるはずである。

早速、mnist_conv_soft_test.c を特徴マップの個数を指定できるように書き換えた。そして、今回の特徴マップが 3 個の浮動小数点数用の重みのヘッダファイルを用意して、mnist_conv_soft_test.elf をRun した。
keras_minst_cnn_39_180630.png

最初に 1 にピンクの四角枠を合わせて 1 を認識させた。
keras_minst_cnn_29_180630.png

ハードウェアのCNN の認識時間は約 1.03 ms でソフトウェアでは、10.87 ms だった。ハードウェアの方はVivado HLS 2018.2 でのレイテンシとほぼ同じだった。ハードウェアの方が約 10 倍速い。
認識は 1 のはずが、固定小数点のハードウェア、浮動小数点のソフトウェア共に 3 に間違えた。

次に、2 を認識させた。
keras_minst_cnn_30_180630.png

ハードウェアでは、2 と判定され正解だったが、ソフトウェアでは、3 と判定された。

3 を認識させた。
keras_minst_cnn_31_180630.png

ハードウェア、ソフトウェア双方とも 3 で正解だ。

4 を認識させた。
keras_minst_cnn_32_180630.png

ハードウェアは 4 で正解だが、ソフトウェアは 3 で間違っている。ハードウェアも位置をシビアに調整する必要があった。

5 を認識させた。
keras_minst_cnn_33_180630.png

ハードウェアは 5 で正解dが、ソフトウェアは 3 で間違っている。

6 を認識させた。
keras_minst_cnn_34_180630.png

ハードウェア、ソフトウェア共に 8 で間違っている。

7 を認識させた。
keras_minst_cnn_35_180630.png

ハードウェアでは 7 で正解だが、ソフトウェアは 3 で間違っている。ハードウェアも位置をシビアに調整する必要があった。

8 を認識させた。
keras_minst_cnn_36_180630.png

8 はハードウェア、ソフトウェア共に正解だ。

9 を認識させた。
keras_minst_cnn_37_180630.png

9 はハードウェア、ソフトウェア共に正解だが、人間の目で上よりの位置に四角枠を設定する必要があった。

0 を認識させた。
keras_minst_cnn_38_180630.png

0 もハードウェア、ソフトウェア共に正解で問題ない。

特徴マップが 3 個の CNN の演算に浮動小数点演算を使用した結果は、1, 2, 4, 5, 6, 7 を間違えた。特徴マップが 3 個の CNN の演算に固定小数点演算を用いた結果は、1, 6 を間違えた。浮動小数点演算のほうが間違えが多いので、量子化の精度、および飽和演算が原因ではないと思う。
  1. 2018年07月01日 05:46 |
  2. PYNQ
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/4215-03ae183e
この記事にトラックバックする(FC2ブログユーザー)