Edge TPU の January 2020 Updates を追う

こんにちは。mermaid でガントチャートを書いている R&D チームの奥村(@izariuo440)です。前回の Edge TPU 更新からはや4ヶ月。今回の更新では、Edge TPU が macOS や Windows で動くようになりました。この記事では Edge TPU January 2020 Updates をベースに、意訳・追記をしています。いくつかは実際に試してみましたが、すべてを試したわけではありませんのであしからず。

Edge TPU に関しては、過去記事も参考になるかもしれません。

  1. Edge TPU の July 2019 Updates を追う - OPTiM TECH BLOG
  2. 2019インターン紹介: Edge TPU向けPoseNetのリアルタイム姿勢推定 - OPTiM TECH BLOG
  3. Edge TPU の性能を引き出すためには? - OPTiM TECH BLOG
  4. 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

変更点

  1. Edge TPU ランタイムが v13 になった
  2. Edge TPU コンパイラが 2.0.291256449 になった
  3. Edge TPU Python ライブラリ(edgetpu モジュール)が 2.13.0 になった
  4. 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 ベースになった、など

量子化警察より

社内の量子化警察から、以下の情報を得ています。

  1. edgetpu_compiler のランタイムバージョンは v13 に上がっているが、デフォルトは v12
  2. tflite_runtime の配布は macOS 10.14 (Mojave) のみ
    • それ以外のバージョンは TensorFlow 本体パッケージをインストールし、tflite_runtime.interpreter.Interpreter ではなく tf.lite.Interpreter を使うこと
  3. PoseNet は元リポジトリどおりだと動かせないので注意 (GStreamer 関連パッケージ影響)

まとめ

今回、macOS・Windows でも USB アクセラレータが使えるようになりました。まさかこういう更新が入るとは夢にも思いませんでした。これまでも、VirtualBox などを利用すれば macOS・Windows から Edge TPU を使うこともできましたが、USB フィルタ設定が面倒だったので、これはとてもありがたいですね。開発効率も上がると思いますし、プロトタイプのデモンストレーションもしやすくなります。

オプティムでは、こうした技術に興味がある・作ってみたい・既に作っている、というエンジニアを募集しています。興味のある方は、こちらをご覧ください。

www.optim.co.jp