コンテンツへスキップ

からTF SavedModel 形式にエクスポートする方法を理解する。YOLOv8

機械学習モデルのデプロイは難しいかもしれない。TF SavedModel は、TensorFlow が一貫した方法で機械学習モデルをロードするために使用しているオープンソースの機械学習フレームワークです。これは、TensorFlow モデル用のスーツケースのようなもので、持ち運びが簡単で、さまざまなデバイスやシステムで使用することができます。

モデルからTF SavedModel にエクスポートする方法を学ぶことができます。 Ultralytics YOLOv8このガイドでは、モデルを 形式に変換する方法を説明します。このガイドでは、モデルをTF SavedModel 形式に変換する方法を説明し、異なるデバイス上でモデルを用いて推論を実行するプロセスを簡素化します。

なぜTF SavedModel にエクスポートする必要があるのですか?

TensorFlow SavedModel フォーマットは、Googleが開発したTensorFlow エコシステムの一部である。TensorFlow モデルをシームレスに保存し、シリアライズするように設計されている。これは、アーキテクチャ、重み、さらにはコンパイル情報のようなモデルの完全な詳細をカプセル化する。これにより、異なる環境間でモデルを共有、デプロイ、トレーニングすることが容易になります。

TF SavedModel

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

YOLOv8 モデルを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 Runtime は、標準のTensorFlow ランタイムと比較して、より優れたパフォーマンスを提供します。低遅延推論や既存のC++コードベースとの緊密な統合を必要とする展開シナリオに適している。

YOLOv8 モデルのエクスポートTF SavedModel

YOLOv8 モデルをTF SavedModel フォーマットにエクスポートすることで、様々なプラットフォームへの適応性と展開のしやすさが向上します。

インストール

必要なパッケージをインストールするには、以下を実行する:

インストール

# Install the required package for YOLOv8
pip install ultralytics

インストールプロセスに関する詳細な説明とベストプラクティスについては、Ultralytics インストールガイドをご覧ください。YOLOv8 に必要なパッケージをインストールする際に、何らかの問題が発生した場合は、解決策やヒントについて、よくある問題ガイドを参照してください。

使用方法

使い方の説明に入る前に、Ultralytics YOLOv8 の全モデルでエクスポートが可能ですが、 ここで選択したモデルがエクスポート機能をサポートしているかどうかを確認することができます。

使用方法

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to TF SavedModel format
model.export(format='saved_model')  # creates '/yolov8n_saved_model'

# Load the exported TF SavedModel model
tf_savedmodel_model = YOLO('./yolov8n_saved_model')

# Run inference
results = tf_savedmodel_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TF SavedModel format
yolo export model=yolov8n.pt format=saved_model  # creates '/yolov8n_saved_model'

# Run inference with the exported model
yolo predict model='./yolov8n_saved_model' source='https://ultralytics.com/images/bus.jpg'

サポートされているエクスポートオプションの詳細については、Ultralytics 配置オプションのドキュメントページを参照してください。

エクスポートされたYOLOv8 TF SavedModel モデルの展開

YOLOv8 モデルをTF SavedModel フォーマットにエクスポートしたので、次のステップはそれをデプロイすることです。TF GraphDef モデルを実行するための最初のステップとして推奨されるのは、YOLO("./yolov8n_saved_model") メソッドを使用することです。

ただし、TF SavedModel モデルの展開に関する詳細な手順については、以下のリソースを参照してください:

概要

このガイドでは、Ultralytics YOLOv8 モデルをTF SavedModel フォーマットにエクスポートする方法について説明します。TF SavedModel にエクスポートすることで、YOLOv8 モデルをさまざまなプラットフォーム上で最適化、配備、拡張する柔軟性が得られます。

使い方の詳細については、TF SavedModel 公式ドキュメントをご覧ください。

Ultralytics YOLOv8 を他のプラットフォームやフレームワークと統合するための詳細については、統合ガイドのページをチェックすることをお忘れなく。あなたのプロジェクトでYOLOv8 を最大限に活用するための素晴らしいリソースが満載です。



作成 2024-03-23 更新 2024-04-02
著者Burhan-Q(1),abirami-vina(1)

コメント