TensorFlow Lite は、デベロッパーがモバイル デバイス、組み込みデバイス、IoT デバイス上でモデルを実行できるようにすることで、デバイス上の機械学習を可能にするツールセットです。
主な機能
- 次の 5 つの制約を解決することにより、デバイス上の機械学習が最適化されます。遅延(サーバーとの往復が生じない)、プライバシー(個人データがデバイスから流出しない)、接続性(インターネット接続が必要ない)、サイズ(モデルとバイナリのサイズを縮小)、消費電力(推論は効率的で、ネットワークに接続する必要がない)。
- 複数のプラットフォーム サポート: Android デバイス、iOS デバイス、組み込み Linux、マイクロコントローラに対応しています。
- 複数の言語: Java、Swift、Objective-C、C++、Python を対象としています。
- 高パフォーマンス: ハードウェア アクセラレーションとモデルの最適化が行われています。
- 一般的な機械学習タスクのエンドツーエンドのサンプル: 複数のプラットフォームでの画像分類、オブジェクト検出、姿勢推定、質問への回答、テキスト分類などのサンプルを提供します。
開発ワークフロー
以下のガイドではワークフローの各ステップについて説明し、さらに詳しい説明へのリンクを紹介します。
1. TensorFlow Lite モデルを生成する
A TensorFlow Lite モデルは、FlatBuffers と呼ばれる専用の効率的なポータブル フォーマット(ファイル拡張子「.tflite」で識別されます)で表されます。このフォーマットは、TensorFlow のプロトコル バッファ モデル フォーマットに比べて、サイズの縮小(コードのフットプリントが小さくなる)や推論速度の向上(追加の解析と解凍のステップを経ずにデータに直接アクセスできる)などの利点があります。これにより、TensorFlow Lite を計算リソースやメモリリソースが限られたデバイスで効率的に実行できます。
TensorFlow Lite モデルは、オプションでメタデータを含めることができます。このメタデータに人間が読めるモデルの説明や機械が読めるデータを追加して、デバイス上の推論時に前処理と後処理のパイプラインを自動的に生成できます。詳しくは、メタデータを追加をご覧ください。
TensorFlow Lite モデルを生成するには、以下の方法があります。
既存の TensorFlow Lite モデルの使用: 既存のモデルを選択するには、TensorFlow Lite サンプルをご覧ください。モデルには、メタデータが含まれていてもいなくても構いません。
TensorFlow Lite モデルの作成:TensorFlow Lite Model Maker を使用して、独自のカスタム データセットでモデルを作成します。デフォルトでは、すべてのモデルにメタデータが含まれています。
TensorFlow モデルの TensorFlow Lite モデルへの変換: TensorFlow Lite コンバータを使用して、TensorFlow モデルを TensorFlow Lite モデルに変換します。変換中に、量子化などの最適化を適用することで、モデルサイズやレイテンシを削減し、精度の低下を最小限に抑えたり、完全に回避したりできます。デフォルトでは、すべてのモデルにはメタデータが含まれていません。
2. 推論を行う
推論とは、TensorFlow Lite モデルをデバイス上で実行し、入力データに基づいて予測を行うプロセスを指します。モデルの種類に応じて、以下のような方法で推論を行うことができます。
メタデータを含まないモデル: TensorFlow Lite インタープリタ API を使用します。Java、Swift、C++、Objective-C、Python など、複数のプラットフォームと言語に対応しています。
メタデータを含むモデル: TensorFlow Lite Task ライブラリを使用してすぐに使える API を活用することも、TensorFlow Lite サポート ライブラリのカスタム推論パイプラインを構築することもできます。 Android デバイスでは、Android Studio ML Model Binding や TensorFlow Lite コード生成ツールを使って、コードのラッパーを自動的に生成できます。 Java(Android)のみに対応しており、Swift(iOS)と C++ is にも対応するように進めています。
Android デバイスと iOS デバイスでは、ハードウェア アクセラレーションを使用してパフォーマンスを向上させることができます。どちらのプラットフォームでも、GPU デリゲートを使用できます。Android では、NNAPI デリゲート(新しいデバイスの場合)または Hexagon デリゲート(古いデバイスの場合)を、iOS では、Core ML デリゲートを使用できます。新しいハードウェア・アクセラレータのサポートを追加するために、独自のデリゲートを定義できます。
スタートガイド
対象デバイスに応じて、以下のガイドをご覧ください。
Android と iOS: Android クイックスタートと iOS クイックスタートをご確認ください。
組み込み Linux: 組み込みデバイス(Raspberry Pi や Edge TPU を搭載した Coral デバイスなど)については Python クイックスタート、ARM については C++ のビルド手順をご覧ください。
マイクロコントローラ: 数キロバイトのメモリしか搭載していないマイクロコントローラや DSP の場合は、マイクロコントローラ用のTensorFlow Lite for Microcontrollers ライブラリをご覧ください。