TensorFlow Lite ガイド

TensorFlow Lite は、デベロッパーがモバイル デバイス、組み込みデバイス、IoT デバイスで TensorFlow モデルを実行できるようにするツールセットです。これにより、低レイテンシでバイナリサイズを抑えつつ、デバイス上で機械学習の推論を行えるようになります。

TensorFlow Lite は、次の 2 つの主要なコンポーネントで構成されています。

  • TensorFlow Lite インタープリタ: スマートフォン、組み込み Linux デバイス、マイクロコントローラなどのさまざまなハードウェアに最適化されたモデルを実行します。
  • TensorFlow Lite コンバータ: TensorFlow モデルをインタープリタで使用するための効率的な形式に変換し、最適化を行うことでバイナリサイズとパフォーマンスを改善します。

エッジでの機械学習

TensorFlow Lite は、サーバーとの間でデータをやり取りするのではなく、ネットワークの「エッジにある」デバイス上で機械学習を簡単に行えるように設計されています。デバイス上で機械学習を行うことで、デベロッパーは次のような点での改善が行えます。

  • レイテンシ: サーバーとの往復の通信にかかる時間が発生しない
  • プライバシー: データをデバイスから外部に送信する必要がない
  • 接続: インターネット接続が必要ない
  • 消費電力: ネットワーク接続に電力を大量に消費する必要がない

TensorFlow Lite は、小さなマイクロコントローラから高機能なスマートフォンまで、幅広いデバイスに対応しています。

始める

モバイル デバイスで TensorFlow Lite の使用を開始するには、スタートガイドをご覧ください。TensorFlow Lite モデルをマイクロコントローラにデプロイする場合は、マイクロコントローラ向けの説明をご覧ください。

主な機能

  • デバイス上での機械学習用にチューニングされたインタープリタ: デバイス上のアプリケーション用に最適化されたコア演算子のセットを、小さなバイナリサイズでサポートします。
  • 多様なプラットフォームサポート: Android デバイス、iOS デバイス、組み込み Linux、マイクロコントローラに対応し、プラットフォーム API を利用して高速な推論を行います。
  • 複数の言語を対象とした API: Java、Swift、Objective-C、C++、Python を対象としています。
  • 高パフォーマンス: サポートされているデバイスでのハードウェア アクセラレーションに対応しており、カーネルのデバイスへの最適化、アクティベーションとバイアスの事前の融合が行われています。
  • モデル最適化ツール: 量子化などにより、精度を損ねることなくモデルサイズを低減させ、パフォーマンスの向上を図ることができます。
  • 効率的なモデル フォーマット: サイズの低減と移植性の向上を目的に、最適化された FlatBuffer を使用しています。
  • 事前トレーニング済みモデル: 一般的な機械学習タスクを備えた事前トレーニング済みモデルが採用されており、アプリケーションに合わせてカスタマイズできます。
  • サンプルとチュートリアル: サポート対象のプラットフォーム上で機械学習モデルをデプロイする方法について説明しています。

開発ワークフロー

TensorFlow Lite を使用する際のワークフローは、次のとおりです。

  1. モデルを選択する

    独自の TensorFlow モデルを用意する、オンラインでモデルを検索する、事前トレーニング済みモデルの中からモデルを選択するなどして、ドロップインもしくは再トレーニングを行います。

  2. モデルを変換する

    カスタムモデルを使用している場合は、TensorFlow Lite コンバータと数行の Python を使用して、TensorFlow Lite 形式に変換します。

  3. デバイスにデプロイする

    TensorFlow Lite インタープリタと複数の言語に対応した API を使用して、モデルをデバイス上で実行します。

  4. モデルを最適化する

    Model Optimization Toolkit を使用して、精度上の影響を最小限に抑えつつ、モデルのサイズを低減させて効率を改善します。

プロジェクトで TensorFlow Lite を使用する方法ついて詳しくは、スタートガイドをご覧ください。

技術的な制約

TensorFlow Lite では、あらゆる TensorFlow モデルを対象に、デバイス上での高パフォーマンスな推論を提供する予定です。しかし、現在、TensorFlow Lite インタープリタでは、デバイス上での使用に最適化された TensorFlow 演算子の一部しかサポートされていません。つまり、一部のモデルでは、TensorFlow Lite を使用するために追加の手順が必要です。

利用可能な演算子については、演算子の互換性をご覧ください。

TensorFlow Lite インタープリタでまだサポートされていない演算子をモデルで使用している場合、TensorFlow Select を使用して TensorFlow Lite ビルドに TensorFlow オペレーションを含めることができます。ただし、バイナリサイズは増加します。

現在、TensorFlow Lite ではデバイス上でのトレーニングをサポートしていませんが、今後予定されているその他の改善事項とともにロードマップに記載されています。

次のステップ

引き続き TensorFlow Lite について確認したい場合は、次のステップに進んでください。