TensorFlow Lite

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 モデルをデバイス上で実行し、入力データに基づいて予測を行うプロセスを指します。モデルの種類に応じて、以下のような方法で推論を行うことができます。

Android デバイスと iOS デバイスでは、ハードウェア アクセラレーションを使用してパフォーマンスを向上させることができます。どちらのプラットフォームでも、GPU デリゲートを使用できます。Android では、NNAPI デリゲート(新しいデバイスの場合)または Hexagon デリゲート(古いデバイスの場合)を、iOS では、Core ML デリゲートを使用できます。新しいハードウェア・アクセラレータのサポートを追加するために、独自のデリゲートを定義できます。

スタートガイド

対象デバイスに応じて、以下のガイドをご覧ください。

技術的な制約

  • すべての TensorFlow モデルを TensorFlow Lite モデルに変換することはできません演算子の互換性 をご覧ください)

  • デバイス上でのトレーニングはサポートされていませんが、Google のロードマップには掲載されています。