FC2カウンター FPGAの部屋 hls4mlをやってみた6(自分で学習したネットワークをhls4mlでハードウェア化1)
fc2ブログ

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

FPGAの部屋

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

hls4mlをやってみた6(自分で学習したネットワークをhls4mlでハードウェア化1)

hls4mlをやってみた5(KERAS_conv1d_small_nfilt5その2)”の続き。

前回は、KERAS_conv1d_small_nfilt5 のネットワーク構造を調べた。今回は、白線追従ロボットカーの学習データ keras_curve_cnn2_line を hls4ml でVivado HLS 2019.1 のプロジェクトにしてみよう。

hls4ml にかけるには、モデルの構造を記述したJSON ファイルと、モデルの重みの h5 ファイルが必要なので、keras_curve_cnn2_line のJupyter notebook を立ち上げて、出力してみよう。
最初に学習済みモデルを読み込む。

# 学習済みモデルの読み込み

from keras.models import load_model

model = load_model('keras_curve_cnn2_line.h5')


hls4ml_25_190704.png

モデルを json に書き出す。

# save as JSON
json_string = model.to_json()


モデルを json ファイルに書き出して、重みも h5 ファイルに書き出す。

json_name='keras_curve_cnn2_line.json'

with open(json_name, mode='w') as f:
    f.write(json_string)

model.save_weights('keras_curve_cnn2_line_weights.h5')


hls4ml_26_190704.png

keras_curve_cnn2_line.json と keras_curve_cnn2_line_weights.h5 を出力することができた。
hls4ml_27_190704.png

なお keras のコードは、Keras Documentation の”モデルについて”を参考にさせていただいた。
  1. 2019年07月05日 05:00 |
  2. DNN
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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