YOLO11からTF SavedModel 形式にエクスポートする方法を理解する
機械学習モデルのデプロイは難しいかもしれない。TF SavedModel は、TensorFlow が一貫した方法で機械学習モデルをロードするために使用しているオープンソースの機械学習フレームワークです。これは、TensorFlow モデル用のスーツケースのようなもので、持ち運びが簡単で、さまざまなデバイスやシステムで使用することができます。
Ultralytics YOLO11 モデルからTF SavedModel にエクスポートする方法を学ぶことで、異なるプラットフォームや環境にモデルを簡単に展開することができます。このガイドでは、モデルをTF SavedModel 形式に変換する方法を説明し、異なるデバイス上でモデルを用いて推論を実行するプロセスを簡素化します。
なぜTF SavedModel にエクスポートする必要があるのですか?
TensorFlow SavedModel フォーマットは、以下に示すようにGoogle によって開発されたTensorFlow エコシステムの一部である。TensorFlow モデルをシームレスに保存し、シリアライズするように設計されている。これは、アーキテクチャ、重み、さらにはコンパイル情報など、モデルの完全な詳細をカプセル化する。これにより、異なる環境間でモデルを共有、展開、トレーニング継続することが容易になります。
TF SavedModel には、互換性という重要な利点がある。TensorFlow Serving、TensorFlow Lite、TensorFlow.jsとうまく機能する。この互換性により、ウェブやモバイルアプリケーションを含むさまざまなプラットフォームでモデルを共有したり、デプロイしたりすることが容易になります。TF SavedModel フォーマットは、研究にも生産にも便利です。モデルを管理する統一された方法を提供し、どのようなアプリケーションにも対応できるようにします。
TF SavedModelsの主な機能
以下は、TF SavedModel がAI開発者にとって素晴らしい選択肢となる主な特徴である:
移植性:TF SavedModel は、言語に依存しない、回復可能な、密閉された直列化フォーマットを提供する。これにより、より上位のシステムやツールでTensorFlow モデルの生成、利用、変換が可能になります。SavedModelsは、異なるプラットフォームや環境間で簡単に共有し、デプロイすることができます。
導入の容易さ:TF SavedModel は、計算グラフ、学習済みパラメータ、必要なメタデータを1つのパッケージにバンドルしている。これらは、モデルを構築した元のコードを必要とすることなく、簡単にロードして推論に使用することができる。このため、TensorFlow モデルの展開は、さまざまな実運用環境において簡単で効率的なものとなる。
アセット管理:TF SavedModel は、ボキャブラリー、エンベッディング、ルックアップテーブルなどの外部アセットのインクルードをサポートします。これらのアセットは、グラフ定義や変数と一緒に保存され、モデルがロードされたときに利用できるようになります。この機能は、外部リソースに依存するモデルの管理と配布を簡素化します。
配備オプションTF SavedModel
YOLO11モデルをTF SavedModel フォーマットにエクスポートするプロセスに入る前に、このフォーマットが使用される典型的な展開シナリオをいくつか探ってみよう。
TF SavedModel には、機械学習モデルを展開するためのさまざまなオプションが用意されている:
TensorFlow サービング TensorFlow Serving: Servingは、プロダクション環境向けに設計された、柔軟で高性能なサービングシステムです。TF SavedModelsをネイティブにサポートし、クラウドプラットフォーム、オンプレミスサーバー、エッジデバイスへのモデルのデプロイと提供を容易にします。
クラウドプラットフォーム: Google Cloud Platform (GCP)、Amazon Web Services (AWS)、Microsoft Azure などの主要なクラウドプロバイダーは、TF SavedModels を含むTensorFlow モデルのデプロイと実行のためのサービスを提供しています。これらのサービスは、スケーラブルで管理されたインフラストラクチャを提供するため、モデルのデプロイとスケーリングを簡単に行うことができます。
モバイルおよび組み込みデバイス: TensorFlow モバイル、組込み、IoTデバイス上で機械学習モデルを実行するための軽量ソリューションであるLiteは、TF SavedModelsをTensorFlow Liteフォーマットに変換することをサポートします。これにより、スマートフォンやタブレットからマイコンやエッジデバイスまで、幅広いデバイスにモデルを展開することができます。
TensorFlow ランタイム: TensorFlow ランタイム
tfrt
)を実行するための高性能ランタイムである。 TensorFlow グラフを表示します。C++環境でTF SavedModelsをロードして実行するための低レベルAPIを提供する。TensorFlow ランタイムは、標準のTensorFlow ランタイムと比較して、より優れたパフォーマンスを提供する。低遅延推論や既存の C++ コードベースとの緊密な統合を必要とする展開シナリオに適しています。
YOLO11モデルのエクスポート先TF SavedModel
YOLO11モデルをTF SavedModel フォーマットにエクスポートすることで、様々なプラットフォームへの適応性と展開のしやすさが向上します。
インストール
必要なパッケージをインストールするには
インストールプロセスに関する詳しい説明とベストプラクティスについては、Ultralytics インストールガイドをご覧ください。YOLO11に必要なパッケージのインストール中に、何か問題が発生した場合は、解決策とヒントについて、よくある問題ガイドを参照してください。
使用方法
使い方の説明に入る前に、Ultralytics YOLO11の全モデルがエクスポートに対応していることを確認しておきましょう。
使用方法
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo11n_saved_model'
# Load the exported TF SavedModel model
tf_savedmodel_model = YOLO("./yolo11n_saved_model")
# Run inference
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
サポートされているエクスポートオプションの詳細については、Ultralytics 配置オプションのドキュメントページを参照してください。
エクスポートされた YOLO11TF SavedModel モデルの展開
YOLO11モデルをTF SavedModel フォーマットにエクスポートしたので、次のステップは、それをデプロイすることです。TF GraphDef モデルを実行するための最初のステップとして、YOLO("./yolo11n_saved_model") メソッドを使用することをお勧めします。
ただし、TF SavedModel モデルの展開に関する詳細な手順については、以下のリソースを参照してください:
TensorFlow サービス:TensorFlow Servingを使ってTF SavedModel モデルをデプロイする方法についての開発者向けドキュメントです。
Node.js でTensorFlow SavedModel を実行する:TensorFlow TensorFlow SavedModel を変換せずに直接Node.jsで実行するブログ記事。
クラウドへの展開:TensorFlow SavedModel モデルを Cloud AI Platform 上にデプロイすることに関するTensorFlow ブログ記事。
概要
このガイドでは、Ultralytics YOLO11モデルをTF SavedModel フォーマットにエクスポートする方法について説明した。TF SavedModel にエクスポートすることで、幅広いプラットフォーム上でYOLO11モデルを最適化、デプロイ、スケールする柔軟性が得られます。
使い方の詳細については、TF SavedModel 公式ドキュメントをご覧ください。
Ultralytics YOLO11と他のプラットフォームやフレームワークとの統合に関する詳しい情報は、統合ガイドのページをお忘れなく。あなたのプロジェクトでYOLO11を最大限に活用するための素晴らしいリソースが満載です。
よくあるご質問
Ultralytics YOLO モデルをTensorFlow SavedModel 形式にエクスポートするにはどうすればよいですか?
Ultralytics YOLO モデルをTensorFlow SavedModel フォーマットにエクスポートするのは簡単です。このためには、Python またはCLI のいずれかを使用することができます:
YOLO11のエクスポート先TF SavedModel
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo11n_saved_model'
# Load the exported TF SavedModel for inference
tf_savedmodel_model = YOLO("./yolo11n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
詳細については、Ultralytics Exportのドキュメントを参照してください。
なぜTensorFlow SavedModel フォーマットを使う必要があるのですか?
TensorFlow SavedModel フォーマットは、モデル展開にいくつかの利点をもたらす:
- 移植性:言語に依存しないフォーマットを提供するため、異なる環境間でのモデルの共有や展開が容易です。
- 互換性: TensorFlow Serving、TensorFlow Lite、TensorFlow.jsなどのツールとシームレスに統合され、ウェブやモバイルアプリケーションを含むさまざまなプラットフォーム上でモデルを展開するために不可欠です。
- 完全なカプセル化:モデルのアーキテクチャ、重み、コンパイル情報をエンコードし、共有とトレーニングの継続を容易にします。
その他の利点と展開オプションについては、Ultralytics YOLO モデルの展開オプションをご覧ください。
TF SavedModel の典型的な展開シナリオは?
TF SavedModel を含む様々な環境で展開することができる:
- TensorFlow サービングスケーラブルで高性能なモデルサービングを必要とするプロダクション環境に最適。
- クラウドプラットフォーム: Google Cloud Platform (GCP)、Amazon Web Services (AWS)、Microsoft Azureなどの主要なクラウドサービスをサポートし、スケーラブルなモデル展開を実現します。
- モバイルおよび組み込みデバイス: TF SavedModelsの変換にTensorFlow Liteを使用することで、モバイルデバイス、IoTデバイス、マイクロコントローラへの展開が可能になります。
- TensorFlow ランタイム:低レイテンシーでより優れたパフォーマンスを必要とするC++環境向け。
詳細な展開オプションについては、 TensorFlow モデルの展開に関する公式ガイドをご覧ください。
YOLO11モデルをエクスポートするために必要なパッケージは、どのようにインストールできますか?
YOLO11モデルをエクスポートするには ultralytics
パッケージを作成します。ターミナルで以下のコマンドを実行する:
より詳細なインストール手順とベストプラクティスについては、Ultralytics インストールガイドを参照してください。問題が発生した場合は、よくある問題ガイドを参照してください。
TensorFlow SavedModel フォーマットの主な特徴は何ですか?
TF SavedModel フォーマットは、以下のような特徴があり、AI開発者にとって有益である:
- 移植性:さまざまな環境での共有と展開が容易になります。
- 導入の容易さ:計算グラフ、学習済みパラメータ、メタデータを単一のパッケージにカプセル化し、ロードと推論を簡素化。
- 資産管理:語彙のような外部アセットをサポートし、モデルのロード時に利用できるようにします。
詳しくは、 TensorFlow の公式ドキュメントをご覧ください。