FC2カウンター FPGAの部屋 Edge TPU の”Retrain an image classification model”をやってみる5(モデル全体を転移学習2)
FC2ブログ

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

FPGAの部屋

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

Edge TPU の”Retrain an image classification model”をやってみる5(モデル全体を転移学習2)

”Edge TPU の”Retrain an image classification model”をやってみる4(モデル全体を転移学習)”の続き。

前回は、モデル全体を転移学習して、最後の層だけ転移学習を行って、評価した。今回は、モデルを”Edge TPU Model Compiler”でコンパイルしてEdge TPU 用のモデルにしてから、推論を試してみよう。

最初に transfer_learn の model ディレクトリをリネームする。
cd transfer_learn/
mv models models_few_layers
ls
cd ..

Edge_TPU_52_190315.png

学習時のチェックポイントのファイルを tflite に変換する。
./convert_checkpoint_to_edgetpu_tflite.sh --network_type mobilenet_v1 --checkpoint_num 300
Edge_TPU_53_190315.png

transfer_learn/model ディレクトリを生成し、その下に model ディレクトリが生成された。
model ディレクトリの下に、output_tflite_graph.tflite が生成されている。(ホストパソコンでの作業)
そのoutput_tflite_graph.tflite を”Edge TPU Model Compiler”にドラックアンドドロップし、2つのチェックボックスにチェックを入れる。すると Edge TPU 用にコンパイルされる。
Edge_TPU_55_190315.png

Download model ボタンをクリックして、コンパイル済みのモデルをダウンロードする。モデルの名前は、output_tflite_graph_1552679795_edgetpu.tflite だった。
output_tflite_graph_1552679795_edgetpu.tflite を ~/python-tflite-source/edgetpu/classify/models/ に output_tflite_graph_edgetpu.tflite という名前で移動する。(ホストパソコンでの作業)
sudo mv ~/ダウンロード/temp/output_tflite_graph_1552679795_edgetpu.tflite ~/python-tflite-source/edgetpu/classify/models/output_tflite_graph_edgetpu.tflite
Edge_TPU_56_190315.png

Edge_TPU_57_190315.png

Docker コンテナに戻って、transfer_learn/models/labels.txt を編集し、デリミタの : をスペースに変更する。
vim transfer_learn/models/labels.txt
Edge_TPU_58_190315.png

flower.jpg を推論してみよう。
python3 demo/classify_image.py \
--model classify/models/output_tflite_graph_edgetpu.tflite \
--label classify/models/labels.txt \
--image classify/flower.jpg

Edge_TPU_59_190316.png

labels.txt の中では、ひまわりに近かったのかもしれないが実際はゆりである。
Edge_TPU_43_190314.jpg

最後の層だけ転移学習では、最初の選択はひまわりだが、ひまわりの確率は 65 % で、デージーとかもそれなりの確率がある。しかし、全部の層を転移学習では、94 % でひまわりと言っている。最後の層だけ転移学習の flower.jpg の推論結果を示す。
Edge_TPU_44_190314.png

次に flower2.jpg を推論してみよう。
python3 demo/classify_image.py \
--model classify/models/output_tflite_graph_edgetpu.tflite \
--label classify/models/labels.txt \
--image classify/flower2.jpg

Edge_TPU_60_190316.png

こちらは、ひまわりの写真なので、 99.6 % ひまわりということだ。
Edge_TPU_45_190314.jpg

こちらも、最後の層だけ転移学習の flower.jpg の推論結果を示す。
Edge_TPU_46_190314.png

ひまわりの確率は、 94.9 % だった。

次に、flower3.jpg の推論をやってみよう。これは、チューリップの写真だ。
python3 demo/classify_image.py \
--model classify/models/output_tflite_graph_edgetpu.tflite \
--label classify/models/labels.txt \
--image classify/flower3.jpg

Edge_TPU_61_190316.png

99.6 % の確率でチューリップということだ。
Edge_TPU_47_190314.jpg

最後の層だけ転移学習の flower.jpg の推論結果を示す。
Edge_TPU_48_190314.png

チューリップの確率が 99.2 % だった。
  1. 2019年03月18日 04:32 |
  2. Edge TPU
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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