TensorFlow Lite は、デベロッパーがモバイル、組み込み、エッジデバイスでモデルを実行できるようにすることで、オンデバイスの機械学習を可能にするツールセットです。
主な機能
- オンデバイスの機械学習向けに最適化: レイテンシ(サーバーへのラウンドトリップがない)、プライバシー(個人データがデバイスから離れない)、接続(インターネット接続が不要)、サイズ(モデルとバイナリサイズの縮小)、消費電力(効率的な推論とネットワーク接続の欠如)の 5 つの主要な制約に対処することで、オンデバイスの機械学習向けに最適化されています。
- 複数プラットフォームのサポート: Android デバイス、iOS デバイス、組み込み Linux、マイクロコントローラに対応しています。
- Java、Swift、Objective-C、C++、Python などの多様な言語のサポート。
- ハードウェア アクセラレーションとモデルの最適化による高パフォーマンス。
開発ワークフロー
以下のガイドでは、ワークフローの各ステップについて説明し、詳細な手順へのリンクを提供します。
1. TensorFlow Lite モデルを生成する
TensorFlow Lite モデルは、FlatBuffers(.tflite ファイル拡張子で識別)と呼ばれる、効率的で特別なポータブルな形式で表現されます。これには、サイズの縮小(コード フットプリントが小さい)や推論の高速化(追加の解析/展開ステップを必要とせずにデータに直接アクセスできる)など、TensorFlow のプロトコル バッファ モデル形式よりも多くの利点があります。これにより、コンピューティング リソースとメモリリソースが限られているデバイスで TensorFlow Lite を効率的に実行できます。
TensorFlow Lite モデルには、オンデバイスの推論中に前処理および後処理パイプラインを自動生成するために、人が読める形式のモデル説明と機械が読み取れるデータを持つメタデータを含めることができます。詳しくは、メタデータの追加をご覧ください。
TensorFlow Lite モデルは、次の方法で生成できます。
既存の TensorFlow Lite モデルを使用する: 既存のモデルを選択するには、TensorFlow Lite の例をご覧ください。モデルにはメタデータが含まれる場合と含まれない場合があります。
TensorFlow モデルを TensorFlow Lite モデルに変換する: TensorFlow Lite コンバータを使用して TensorFlow モデルを TensorFlow Lite モデルに変換します。変換中に、量子化などの最適化を適用して、モデルサイズとレイテンシを低減し、精度の低下を最小限に、またはゼロにできます。デフォルトでは、すべてのモデルにメタデータは含まれません。
2. 推論を実行する
推論とは、デバイス上で TensorFlow Lite モデルを実行し、入力データに基づいて予測を行うプロセスを指します。推論は、モデルタイプに基づいて次の方法で実行できます。
メタデータなしのモデル: TensorFlow Lite インタープリタ API を使用します。Java、Swift、C++、Objective-C、Python など、複数のプラットフォームと言語でサポートされています。
メタデータを含むモデル: TensorFlow Lite サポート ライブラリを使用して、カスタム推論パイプラインを構築できます。Android デバイスでは、Android Studio ML Model Binding または TensorFlow Lite コード生成ツールを使用して、コードラッパーを自動的に生成できます。これは Java(Android)でのみサポートされ、Swift(iOS)と C++ では開発が進められています。
Android デバイスと iOS デバイスでは、ハードウェア アクセラレーションを使用してパフォーマンスを改善できます。どちらのプラットフォームでも GPU Delegate を使用でき、iOS では Core ML Delegate を使用できます。新しいハードウェア アクセラレータのサポートを追加するには、独自のデリゲートを定義します。
始める
対象デバイスに応じて、次のガイドをご覧ください。
Android と iOS: Android クイックスタートと iOS クイックスタートをご覧ください。
埋め込み Linux: Raspberry Pi や Edge TPU を使用した Coral デバイスなどの組み込みデバイス向けの Python クイックスタートや、ARM 用の C++ ビルド手順をご確認ください。
マイクロコントローラ: TensorFlow Lite for Microcontrollers ライブラリで、数 KB のメモリのみを搭載したマイクロコントローラと DSP を確認します。
技術的な制約
- すべての TensorFlow モデルを TensorFlow Lite モデルに変換することはできません。演算子の互換性をご覧ください。