こんにちは。mermaid でガントチャートを書いている R&D チームの奥村(@izariuo440)です。前回の Edge TPU 更新からはや4ヶ月。今回の更新では、Edge TPU が macOS や Windows で動くようになりました。この記事では Edge TPU January 2020 Updates をベースに、意訳・追記をしています。いくつかは実際に試してみましたが、すべてを試したわけではありませんのであしからず。
Edge TPU に関しては、過去記事も参考になるかもしれません。
- Edge TPU の July 2019 Updates を追う - OPTiM TECH BLOG
- 2019インターン紹介: Edge TPU向けPoseNetのリアルタイム姿勢推定 - OPTiM TECH BLOG
- Edge TPU の性能を引き出すためには? - OPTiM TECH BLOG
- Edge TPU の September 2019 Updates を追う - OPTiM TECH BLOG
意訳
Edge TPU ランタイムとコンパイラのさまざまなバグ修正を含む更新がリリースされました。なんと、Edge TPU ランタイムと Python ライブラリが macOS と Windows で利用可能になりました!
つまり、Debian Linux・macOS・Windows 10 のどんなマシンでも Coral USB アクセラレータ を接続すれば使えるようになったということです。
macOS・Windows で USB アクセラレータを使いたい場合、更新された get started with the USB Accelerator に従ってください。
既存の Linux マシン・Coral Dev Board で最新のツールで更新するには、以下のように Debian パッケージを更新するだけです。
sudo apt-get update sudo apt-get install edgetpu python3-edgetpu
TensorFlow Lite API を使っている場合、tflite_runtime
モジュールも更新しましょう。手順は TensorFlow Lite Python quickstart に従ってください。例えば、Coral Dev Board で TensorFlow Lite を更新する方法は以下のとおりです。
pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0-cp37-cp37m-linux_aarch64.whl
変更点
- Edge TPU ランタイムが v13 になった
- Edge TPU コンパイラが 2.0.291256449 になった
- Edge TPU Python ライブラリ(
edgetpu
モジュール)が 2.13.0 になった - TensorFlow Lite ランタイム(
tflite_runtime
モジュール)が TensorFlow 2.1 ベースになった
Edge TPU ランタイムを更新する場合、推論に使用する API に応じて、edgetpu
モジュールか tflite_runtime
モジュールのどちらかを更新する必要があります。
Edge TPU パッケージは、すべて software downloads page で見つけられます。TensorFlow Lite パッケージは、TensorFlow Lite Python quickstart を参照してください。
気になったこと
GitHub の CHANGES.md に記載されていますが、Edge TPU コンパイラは Linux のみのようです。
edgetpu/CHANGES.md at master · google-coral/edgetpu · GitHub
コミットログを見ると、もう少し細かい変更点が確認できます。
おまけ
Edge TPU の歩み
これまでの動きを振り返ると、2ヶ月ごとの更新になってきていましたが、今回は4ヶ月でした。次回の更新時には、もう春ですかね。
- 2019/03/04: ベータ版リリース
- 2019/04/11: 正式版リリース
- 2019/05/29: オフラインコンパイラリリースなど
- 2019/07/24: post-training quantization サポート、TensorFlow Lite デリゲート対応など
- 2019/09/25:
apt-get
対応強化、コンパイラ更新、Python ライブラリ更新、GitHub への移行など - 2020/01/29: macOS・Windows サポート、TensorFlow 2.1 ベースになった、など
量子化警察より
社内の量子化警察から、以下の情報を得ています。
edgetpu_compiler
のランタイムバージョンは v13 に上がっているが、デフォルトは v12tflite_runtime
の配布は macOS 10.14 (Mojave) のみ- それ以外のバージョンは TensorFlow 本体パッケージをインストールし、
tflite_runtime.interpreter.Interpreter
ではなくtf.lite.Interpreter
を使うこと
- それ以外のバージョンは TensorFlow 本体パッケージをインストールし、
- PoseNet は元リポジトリどおりだと動かせないので注意 (GStreamer 関連パッケージ影響)
- https://github.com/google-coral/examples-camera の OpenCV サンプルを参考に、GStreamer 部分を差し替えることで実行可能になる
まとめ
今回、macOS・Windows でも USB アクセラレータが使えるようになりました。まさかこういう更新が入るとは夢にも思いませんでした。これまでも、VirtualBox などを利用すれば macOS・Windows から Edge TPU を使うこともできましたが、USB フィルタ設定が面倒だったので、これはとてもありがたいですね。開発効率も上がると思いますし、プロトタイプのデモンストレーションもしやすくなります。
オプティムでは、こうした技術に興味がある・作ってみたい・既に作っている、というエンジニアを募集しています。興味のある方は、こちらをご覧ください。