Edge TPU Compiler(edgetpu_compiler
)は、TensorFlow Liteモデル(.tflite file)をEdge TPUと互換性のあるファイルにコンパイルするコマンドラインツールです。 このページでは、コンパイラの使い方と動作について説明します。
コンパイラを使用する前に、Edge TPUと互換性のあるモデルがあることを確認してください。
システム要求
Edge TPU Compilerは、現代のあらゆるDebianベースのLinuxシステム上で実行することができます。 具体的には、次のとおりです。
Debian 6.0以降、またはその派生物(Ubuntu 10.0以降など)
ARMv8命令セットを使用したx86-64またはARM64のシステムアーキテクチャ
これには、Coral Dev Boardでのメンデルのサポートも含まれます。
Download
次のコマンドを使用して、Linuxシステムにコンパイラをインストールできます。
echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list
sudo apt update
sudo apt install edgetpu
使用法
edgetpu_compiler [options] model...
コンパイラは、1つ以上のTensorFlow Liteモデル( model
引数)へのファイルパスと任意のオプションを受け入れます。 複数のモデル(それぞれスペースで区切られている)を渡すと、それらはEdge TPUのRAMをパラメータデータキャッシュ用に共有できるようにまとめてコンパイルされます。
コンパイルされた各モデルのファイル名はinput_filename_edgetpu.tflite
です。-out_dir
オプションを使用して指定しない限り、現在のディレクトリに保存されます。
Edge TPUは、1つのモデルのみを実行しているときに最高の推論速度を実現します。これは、Edge TPUで使用可能なキャッシュスペースが一度に複数のモデルに対応できないためです。 1つのEdge TPUで複数のモデルを実行できますが、モデルを交換するたびにキャッシュをクリアする必要があるため、パイプライン全体の速度が低下します。 このパフォーマンスのボトルネックを解決するには、各モデルを異なるEdge TPUで実行します。
Coral のハードウェアに使われている Edge TPU チップは、量子化されたモデルを使うように設計されています。量子化とは、精度への影響を最低限にとどめつつ、ベースとなるデータを圧縮して、小さく高速なモデルにすることを指します。
代理店:https://store.gravitylink.com
TensorFlow Lite Converter を使うと、すべてのトレーニング済み TensorFlow モデルを量子化できます。このテクニックの詳細は、トレーニング後の量子化をご覧ください。
次の簡単なコード スニペットは、TensorFlow Lite ナイトリー版と TensorFlow 2.0 アルファ版を使ってモデルを変換し、量子化する方法を示しています。