コンテンツにスキップ

迅速なデプロイのためのTorchScriptへのYOLO11モデルのエクスポート

組み込みシステム、Webブラウザ、またはpythonのサポートが限られているプラットフォームなど、さまざまな環境にコンピュータビジョンモデルをデプロイするには、柔軟で移植可能なソリューションが必要です。TorchScriptは、移植性とpythonフレームワーク全体が利用できない環境でモデルを実行する機能に重点を置いています。これにより、さまざまなデバイスまたはプラットフォームにコンピュータビジョン機能をデプロイする必要があるシナリオに最適です。

Ultralytics YOLO11 モデルを TorchScript にエクスポートして、クロスプラットフォームの互換性と合理化されたデプロイメントを実現するためにシリアル化します。このガイドでは、YOLO11 モデルを TorchScript 形式にエクスポートする方法について説明し、より広範なアプリケーションで簡単に使用できるようにします。

TorchScript へのエクスポートの利点は何ですか?

Torchscriptの概要

PyTorchの開発者によって開発されたTorchScriptは、さまざまなプラットフォームでPyTorchモデルを最適化および展開するための強力なツールです。YOLO11モデルをTorchScriptにエクスポートすることは、研究から実際のアプリケーションに移行するために重要です。PyTorchフレームワークの一部であるTorchScriptは、pythonをサポートしていない環境でPyTorchモデルを使用できるようにすることで、この移行をスムーズにします。

このプロセスには、トレースとスクリプトの2つの手法が含まれます。トレースはモデル実行中の操作を記録し、スクリプトを使用すると、pythonのサブセットを使用してモデルを定義できます。これらの手法により、YOLO11のようなモデルは、通常のpython環境外でもその魔法を発揮し続けることができます。

TorchScriptスクリプトとトレース

TorchScriptモデルは、オペレーターの融合やメモリ使用量の改善などの手法を通じて最適化することもでき、効率的な実行を保証します。TorchScriptにエクスポートするもう1つの利点は、さまざまなハードウェアプラットフォームでのモデル実行を高速化できる可能性があることです。C++環境、組み込みシステムに統合したり、Webまたはモバイルアプリケーションにデプロイしたりできる、スタンドアロンの製品対応のPyTorchモデル表現が作成されます。

TorchScriptモデルの主な特徴

PyTorchエコシステムの重要な部分であるTorchScriptは、深層学習モデルを最適化およびデプロイするための強力な機能を提供します。

TorchScriptの機能

TorchScriptを開発者にとって価値のあるツールにする主要な機能を以下に示します。

  • 静的グラフ実行: TorchScriptは、モデルの計算の静的グラフ表現を使用します。これは、PyTorchの動的グラフ実行とは異なります。静的グラフ実行では、計算グラフは実際の実行前に一度定義およびコンパイルされ、推論中のパフォーマンスが向上します。

  • モデルのシリアライズ:TorchScriptを使用すると、PyTorchモデルをプラットフォームに依存しない形式にシリアライズできます。シリアライズされたモデルは、元のpythonコードを必要とせずにロードでき、異なるランタイム環境でのデプロイメントが可能になります。

  • JITコンパイル:TorchScriptは、Just-In-Time(JIT)コンパイルを使用して、PyTorchモデルを最適化された中間表現に変換します。JITはモデルの計算グラフをコンパイルし、ターゲットデバイスでの効率的な実行を可能にします。

  • クロスランゲージ統合: TorchScriptを使用すると、PyTorchモデルをC++、Java、JavaScriptなどの他の言語にエクスポートできます。これにより、異なる言語で記述された既存のソフトウェアシステムへのPyTorchモデルの統合が容易になります。

  • 段階的な変換: TorchScriptは段階的な変換アプローチを提供し、PyTorchモデルの一部を段階的にTorchScriptに変換できます。この柔軟性は、複雑なモデルを扱う場合や、コードの特定の部分を最適化したい場合に特に役立ちます。

TorchScriptでのデプロイメントオプション

YOLO11モデルをTorchScript形式にエクスポートするコードを見る前に、TorchScriptモデルが通常どこで使用されるかを理解しましょう。

TorchScriptは、機械学習モデルに、以下のようなさまざまなデプロイメントオプションを提供します。

  • C++ API: TorchScriptの最も一般的なユースケースはC++ APIであり、最適化されたTorchScriptモデルをC++アプリケーション内で直接ロードして実行できます。これは、pythonが適切でない、または利用できない本番環境に最適です。C++ APIは、TorchScriptモデルの低オーバーヘッドで効率的な実行を提供し、パフォーマンスの可能性を最大化します。

  • モバイル展開:TorchScriptは、モデルをモバイルデバイスに簡単に展開できる形式に変換するためのツールを提供します。PyTorch Mobileは、iOSおよびAndroidアプリ内でこれらのモデルを実行するためのランタイムを提供します。これにより、低遅延のオフライン推論機能が実現し、ユーザーエクスペリエンスとデータプライバシーが向上します。

  • クラウドデプロイメント: TorchScriptモデルは、TorchServeのようなソリューションを使用してクラウドベースのサーバーにデプロイできます。モデルのバージョン管理、バッチ処理、および本番環境でのスケーラブルなデプロイメントのためのメトリクス監視などの機能を提供します。TorchScriptを使用したクラウドデプロイメントにより、APIまたはその他のWebサービスを介してモデルにアクセスできるようになります。

TorchScript へのエクスポート: YOLO11 モデルの変換

YOLO11モデルをTorchScriptにエクスポートすると、さまざまな場所で使用しやすくなり、より高速かつ効率的に実行できるようになります。これは、実際のアプリケーションで深層学習モデルをより効果的に使用したいと考えているすべての人にとって最適です。

インストール

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

インストール

# Install the required package for YOLO11
pip install ultralytics

インストールプロセスに関する詳細な手順とベストプラクティスについては、Ultralyticsインストールガイドをご確認ください。YOLO11に必要なパッケージのインストール中に問題が発生した場合は、よくある問題ガイドで解決策とヒントを参照してください。

使用法

すべてのUltralytics YOLO11モデルは、すぐにエクスポートできるように設計されており、お好みのデプロイメントワークフローに簡単に統合できます。アプリケーションに最適なセットアップを選択するために、サポートされているエクスポート形式と構成オプションの完全なリストを表示できます

使用法

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo11n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'

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

エクスポート引数

引数 種類 デフォルト 説明
format str 'torchscript' エクスポートされたモデルのターゲット形式。さまざまなデプロイメント環境との互換性を定義します。
imgsz int または tuple 640 モデル入力に必要な画像サイズ。正方形の画像の場合は整数、タプルの場合は (height, width) 特定の寸法の場合。
dynamic bool False 動的な入力サイズを許可し、さまざまな画像寸法を処理する際の柔軟性を高めます。
optimize bool False モバイルデバイス向けに最適化を適用し、モデルサイズを削減し、パフォーマンスを向上させる可能性があります。
nms bool False Non-Maximum Suppression (NMS) を追加しました。これは、正確で効率的な検出後処理に不可欠です。
batch int 1 エクスポートされたモデルのバッチ推論サイズ、またはエクスポートされたモデルが同時に処理する画像の最大数を指定します。 predict モードを参照してください。
device str None エクスポート先のデバイス(GPU(device=0)、CPU (device=cpu)、Apple シリコン用 MPS (device=mps)。

エクスポートプロセスの詳細については、エクスポートに関するUltralyticsドキュメントページをご覧ください。

エクスポートされたYOLO11 TorchScriptモデルのデプロイ

Ultralytics YOLO11モデルをTorchScript形式に正常にエクスポートした後、それらをデプロイできます。TorchScriptモデルを実行するための主要かつ推奨される最初のステップは、前の使用コードスニペットで概説されているように、YOLO("model.torchscript")メソッドを利用することです。ただし、他のさまざまな設定でTorchScriptモデルをデプロイする方法の詳細については、次のリソースをご覧ください。

  • モバイルデプロイメントを調べる: PyTorch Mobileドキュメントには、モバイルデバイスへのモデルのデプロイに関する包括的なガイドラインが記載されており、アプリケーションの効率性と応答性を確保します。

  • サーバーサイドデプロイメントをマスターする: スケーラブルで効率的なモデル提供のためのステップごとのチュートリアルを提供するTorchServeを使用して、モデルをサーバーサイドにデプロイする方法を学びます。

  • C++デプロイメントの実装: C++でのTorchScriptモデルのロードに関するチュートリアルに進み、パフォーマンスと汎用性を高めるために、TorchScriptモデルをC++アプリケーションに統合することを容易にします。

概要

このガイドでは、Ultralytics YOLO11モデルをTorchScript形式にエクスポートするプロセスを探りました。提供された手順に従うことで、YOLO11モデルのパフォーマンスを最適化し、さまざまなプラットフォームや環境に展開できる柔軟性を得ることができます。

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

また、Ultralytics YOLO11のその他の統合について詳しく知りたい場合は、統合ガイドページをご覧ください。役立つリソースや洞察が多数掲載されています。

よくある質問

Ultralytics YOLO11モデルのTorchScriptへのエクスポートとは何ですか?

Ultralytics YOLO11 モデルを TorchScript にエクスポートすると、柔軟なクロスプラットフォームのデプロイメントが可能になります。PyTorch エコシステムの一部である TorchScript は、モデルのシリアル化を容易にし、Python のサポートがない環境でも実行できます。これにより、組み込みシステム、C++ 環境、モバイルアプリケーション、さらには Web ブラウザーへのモデルのデプロイに最適です。TorchScript にエクスポートすると、多様なプラットフォームで YOLO11 モデルの効率的なパフォーマンスと幅広い適用性が実現します。

Ultralyticsを使用して、YOLO11モデルをTorchScriptにエクスポートするにはどうすればよいですか?

YOLO11モデルをTorchScriptにエクスポートするには、次のサンプルコードを使用できます。

使用法

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo11n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'

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

エクスポートプロセスの詳細については、エクスポートに関するUltralyticsドキュメントを参照してください。

YOLO11モデルのデプロイにTorchScriptを使用する理由は何ですか?

YOLO11 モデルのデプロイに TorchScript を使用すると、いくつかの利点があります。

  • 移植性: エクスポートされたモデルは、C++アプリケーション、組み込みシステム、モバイルデバイスなど、pythonを必要としない環境で実行できます。
  • 最適化: TorchScriptは、静的グラフ実行とJust-In-Time(JIT)コンパイルをサポートしており、モデルのパフォーマンスを最適化できます。
  • クロスランゲージ統合: TorchScriptモデルは他のプログラミング言語に統合でき、柔軟性と拡張性が向上します。
  • シリアライゼーション: モデルはシリアライズできるため、プラットフォームに依存しないロードと推論が可能です。

デプロイに関するより深い洞察については、PyTorch Mobile DocumentationTorchServe Documentation、およびC++ Deployment Guideをご覧ください。

YOLO11モデルをTorchScriptにエクスポートするためのインストール手順は何ですか?

YOLO11 モデルをエクスポートするために必要なパッケージをインストールするには、次のコマンドを使用します。

インストール

# Install the required package for YOLO11
pip install ultralytics

詳細な手順については、Ultralyticsのインストールガイドをご覧ください。インストール中に問題が発生した場合は、よくある問題ガイドを参照してください。

エクスポートしたTorchScript YOLO11モデルをデプロイするにはどうすればよいですか?

YOLO11 モデルを TorchScript 形式にエクスポートした後、さまざまなプラットフォームにデプロイできます。

  • C++ API: 低オーバーヘッドで、非常に効率的な本番環境に最適です。
  • モバイルデプロイメント:iOSおよびAndroidアプリケーションには、PyTorch Mobileを使用してください。
  • クラウドデプロイメント:TorchServeのようなサービスを利用して、スケーラブルなサーバーサイドデプロイメントを実現します。

TorchScriptの機能を最大限に活用するために、これらの環境にモデルをデプロイするための包括的なガイドラインについて見ていきましょう。



📅 1年前に作成 ✏️ 21日前に更新

コメント