このページでは、TensorFlow Lite モデル形式に変換することを目的に TensorFlow モデルを構築するためのガイダンスを示します。TensorFlow Lite で使用する機械学習(ML)モデルは、元々は TensorFlow のコアライブラリとツールを使用して構築およびトレーニングされています。TensorFlow コアを使用してモデルを構築したら、TensorFlow Lite モデルと呼ばれる、より小規模で効率的な ML モデル形式に変換できます。
変換するモデルがすでにある場合は、モデルの変換の概要ページでモデルの変換に関するガイダンスを確認してください。
モデルの構築
特定のユースケース用にカスタムモデルを作成する場合は、TensorFlow モデルの開発とトレーニング、または既存のモデルの拡張から始める必要があります。
モデル設計の制約
モデルの開発プロセスを開始する前に、TensorFlow Lite モデルの制約を認識し、これらの制約を念頭に置いてモデルを構築する必要があります。
- 限られたコンピューティング能力 - 複数の CPU、大容量のメモリ、専用プロセッサ(GPU や TPU など)を備えたフル装備のサーバーに比べて、モバイル デバイスやエッジデバイスははるかに限られています。コンピューティング能力と専用のハードウェアの互換性は向上していますが、それらを使用して効果的に処理できるモデルとデータは、依然として比較的限られています。
- モデルのサイズ - データ前処理ロジックやモデル内のレイヤ数など、モデルの全体的な複雑さにより、モデルのメモリ内サイズが増加します。大規模なモデルでは、実行速度が許容できないほど遅くなったり、モバイル デバイスやエッジデバイスの使用可能なメモリに収まらない場合があります。
- データのサイズ - モバイル デバイスやエッジデバイスで、ML モデルで効果的に処理できる入力データのサイズが制限されています。言語ライブラリ、画像ライブラリ、動画クリップ ライブラリなどの大規模なデータ ライブラリを使用するモデルは、これらのデバイスに適しておらず、デバイス外のストレージとアクセス ソリューションが必要になる場合があります。
- サポートされている TensorFlow オペレーション - TensorFlow Lite ランタイム環境は、通常の TensorFlow モデルと比較して、ML モデルのオペレーションのサブセットをサポートしています。TensorFlow Lite で使用するモデルを開発する場合は、TensorFlow Lite ランタイム環境の機能に対するモデルの互換性を追跡する必要があります。
TensorFlow Lite 用の効率的で互換性のある高性能なモデルの構築について詳しくは、パフォーマンスに関するベスト プラクティスをご覧ください。
モデルの開発
TensorFlow Lite モデルを構築するには、まず TensorFlow のコアライブラリを使用してモデルを構築する必要があります。TensorFlow コアライブラリは、ML モデルを構築、トレーニング、デプロイするための API を提供する低レベルのライブラリです。
TensorFlow では、これを行う 2 つの方法を用意しています。独自のカスタムモデルコードを開発するか、TensorFlow Model Garden で利用可能なモデルの実装から始めることができます。
Model Garden
TensorFlow Model Garden には、ビジョンと自然言語処理(NLP)用の最先端の機械学習(ML)モデルが数多く実装されています。また、標準データセットに対してこれらのモデルをすばやく構成して実行できるワークフロー ツールもあります。Model Garden の ML モデルには完全なコードが含まれているため、独自のデータセットを使用して ML モデルをテスト、トレーニング、再トレーニングできます。
よく知られているモデルのパフォーマンスのベンチマーク、最近リリースされた研究の結果の検証、既存のモデルの拡張など、Model Garden は ML 目標の達成に役立ちます。
カスタムモデル
ユースケースが Model Garden のモデルでサポートされていない場合は、Keras などの高レベルのライブラリを使用してカスタム トレーニング コードを開発できます。TensorFlow の基礎を学習するには、TensorFlow ガイドをご覧ください。サンプルを使い始めるには、TensorFlow チュートリアルの概要をご覧ください。これには、エキスパート レベルのチュートリアルを始めるためのポインタが含まれています。
モデルの評価
モデルを開発したら、その性能を評価し、エンドユーザーのデバイスでテストする必要があります。TensorFlow には、これを行う方法がいくつか用意されています。
- TensorBoard は、ML ワークフローで必要な測定と可視化を行うためのツールです。これにより、損失や精度などのテスト指標の追跡、モデルグラフの可視化、下位次元空間へのエンベディングの投影などが可能になります。
- ベンチマーク ツールは、サポートされている各プラットフォーム(Android ベンチマーク アプリや iOS ベンチマーク アプリなど)で利用できます。これらのツールを使用すると、重要なパフォーマンス指標の統計情報を測定して計算できます。
モデルの最適化
TensorFlow Lite モデルに固有のリソースに制約を設定することで、モデルの最適化により、モデルのパフォーマンスを高め、使用するコンピューティング リソースを削減できます。通常、ML モデルのパフォーマンスは、推論のサイズと速度と精度のバランスで決まります。TensorFlow Lite は現在、量子化、プルーニング、クラスタリングによる最適化をサポートしています。これらの手法の詳細については、モデルの最適化のトピックをご覧ください。TensorFlow には、これらの手法を実装する API を提供するモデル最適化ツールキットも用意されています。
次のステップ
- カスタムモデルの構築を始めるには、TensorFlow コア ドキュメントの初心者向けクイックスタート チュートリアルをご覧ください。
- カスタム TensorFlow モデルを変換するには、モデルの変換の概要をご覧ください。
- モデルが TensorFlow Lite と互換性があるかどうか、または互換性を持たせるために追加の手順が必要かどうかを判断するには、演算子の互換性に関するガイドをご覧ください。
- TensorFlow Lite モデルの効率とパフォーマンスを向上させるガイダンスについては、パフォーマンスに関するベスト プラクティス ガイドをご覧ください。
- ベンチマーク ツールを使用してモデルのパフォーマンスを測定する方法については、パフォーマンス指標ガイドをご覧ください。