FC2カウンター FPGAの部屋 白線間走行用CNNをKerasで学習する3(各層の重みとバイアスをCのヘッダファイルに変換)
fc2ブログ

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

FPGAの部屋

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

白線間走行用CNNをKerasで学習する3(各層の重みとバイアスをCのヘッダファイルに変換)

白線間走行用CNNをKerasで学習する2(各層の重みとバイアスの統計情報)”の続き。

前回は、学習した結果の重みやバイアスの統計情報を見た。今回は、その重みやバイアスをPython コードを使用して C 言語のヘッダファイルに変換してみよう。

重みやバイアスを C のヘッダファイルに変換するPython コードは以下のブログ記事を見てほしい。

TensorFlow + Kerasを使ってみた9(畳み込み層の重みをC のヘッダに変換)
TensorFlow + Kerasを使ってみた10(バイアスをC のヘッダに変換)


これらのPython コードを使用して、畳み込み層、全結合層第1層目、全結合層第2層目の重みとバイアスを C ヘッダファイルに変換した。

畳み込み層の重みとバイアスの C ヘッダファイルを示す。
keras_mnist_zero_13_180729.png

keras_mnist_zero_14_180729.png

全結合層第1層目の重みとバイアスの C ヘッダファイルの一部を示す。
keras_mnist_zero_15_180729.png

keras_mnist_zero_16_180729.png

全結合層第2層目の重みとバイアスの C ヘッダファイルの一部を示す。
keras_mnist_zero_17_180729.png

keras_mnist_zero_18_180729.png

全結合層第2層目の重みは、最大値が 1.27 程度なのだが、ハードウェアにするときの固定小数点のビット幅は、整数部が 1 ビット、小数部が 8 ビットなので、表現できる数は、-1.0 ~ (1.0 - 1/256) なので、1.27 は飽和演算されて、1.0 - 1/256 に変更される。
  1. 2018年07月29日 05:45 |
  2. TensorFlow, Keras
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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