Upgrade to Pro — share decks privately, control downloads, hide ads and more …

みんなラズパイでTensorFlow Liteしよう?

みんなラズパイでTensorFlow Liteしよう?

TensorFlow Liteはラズパイで3分ならぬ1分で動かせます、という話。

この資料は「IoT縛りの勉強会!IoTLT × IoT ALGYAN(あるじゃん) 夏の大LT祭り!」で使用したものです。
https://iotlt.connpass.com/event/85076/

Arata Furukawa

June 09, 2018
Tweet

More Decks by Arata Furukawa

Other Decks in Technology

Transcript

  1. © DMM.com LLC こういうやつ とは このスライドは約 秒で スキップされます Android™, iOS™,

    Raspberry Pi™でTensorFlowモデルを動作 させることを目的としたインタプリタエンジン。 Pythonランタイムを必要とせず、各アーキテクチャ向けにネイ ティブコンパイルされた TFLiteインタプリタにより、 推論を省メモリで高速実行する。微調整を主目的としたパラ メータの学習にも対応している。 AndroidではNNAPI(Android Neural Network API)による ハードウェアクセラレーションにも対応している。 3月はじめくらいにRaspberry Piのサポートが追加された。 もう3ヶ月経つのに日本ではあんまり話題になってない。かなしい。
  2. © DMM.com LLC クロスコンパイル MacBook Pro 2015上のUbuntuコンテナで1分くらい をラズパイ 向けにコンパイルします。 ができます。

    $ sudo apt-get update $ sudo apt-get install crossbuild-essential-armhf $ git clone https://github.com/tensorflow/tensorflow.git $ cd tensorflow $ ./tensorflow/contrib/lite/download_dependencies.sh $ ./tensorflow/contrib/lite/build_rpi_lib.sh
  3. © DMM.com LLC ビルド ネイティブコンパイルは下記参考。 $ cd ~ $ git

    clone https://github.com/tensorflow/tensorflow.git $ git clone https://github.com/google/flatbuffers.git $ gcc-6 main.cpp \ > -I$HOME/tensorflow \ > -I$HOME/flatbuffers/include \ > --std=c++11 \ > -L. -ltensorflow-lite \ > -lstdc++ -lpthread -ldl -lm が必要なのでネイティブコンパイルするなら にしてください。 は必須。
  4. © DMM.com LLC 実行したいモデルの変換 tf.contrib.lite.toco_convertで、 の を モデル に変換する SavedModel

    (Protocol Buffers) TFLite Model (FlatBuffers) TFLiteモデルはFlatBuffers形式。 読み込みのフットプリントが小さい。
  5. © DMM.com LLC 実行エラーでました エラー例 Didn't find custom op for

    name 'ArgMax' with version 1 Didn't find custom op for name 'VariableV2' with version 1 Didn't find custom op for name 'ReorderAxes' with version 1 Registration failed. 一部のオペレーションはビルトインされていない オペレーション対応状況はここ↓ https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/g3doc/tf_ops_compatibility.md
  6. © DMM.com LLC フリーズしてリトライ 実行できた 魚です Inference time: 0.000000(ms) apple:

    0.02% bed: 0.00% cat: 0.00% dog: 0.00% eye: 0.01% fish: 99.96% grass: 0.00% hand: 0.00% ice creame: 0.00% jacket: 0.00% 実行結果
  7. © DMM.com LLC ご清聴ありがとうございました。 Attribution - Android is a trademark

    of Google LLC. - TensorFlow is trademark of Google Inc. - iOS is trademark of Apple Inc. - Raspberry Pi is a trademark of the Raspberry Pi Foundation.