YOLO11 迅速な展開のためのTorchScript へのモデルエクスポート
組み込みシステム、ウェブブラウザ、Python のサポートが限定されたプラットフォームなど、さまざまな環境にコンピュータビジョンモデルを展開するには、柔軟で移植性の高いソリューションが必要です。TorchScript は、移植性と、Python フレームワーク全体が利用できない環境でもモデルを実行できる機能に重点を置いています。このため、さまざまなデバイスやプラットフォームにコンピュータ・ビジョン機能を展開する必要があるシナリオに最適です。
Torchscript にエクスポートしてシリアライズ Ultralytics YOLO11このガイドでは、 のモデルを 形式にエクスポートする方法を紹介します。このガイドでは、YOLO11 のモデルをTorchScript フォーマットにエクスポートし、より幅広いアプリケーションで使用できるようにする方法を紹介します。
なぜTorchScript 。
PyTorch のクリエーターによって開発されたTorchScript は、PyTorch のモデルをさまざまなプラットフォームで最適化し、展開するための強力なツールです。YOLO11 モデルを TorchScriptにエクスポートすることは、研究から実世界のアプリケーションに移行するために非常に重要です。TorchScript PyTorch フレームワークの一部であるPyTorch は、Python をサポートしていない環境でも モデルを使用できるようにすることで、この移行をスムーズにします。
このプロセスには、トレースとスクリプティングという2つの技法がある。トレースはモデル実行中のオペレーションを記録し、スクリプトはPython のサブセットを使ったモデルの定義を可能にする。これらのテクニックは、YOLO11 のようなモデルが、通常のPython 環境の外でも魔法を使えることを保証する。
TorchScript また、演算子融合やメモリ使用量の改良などの技術によってモデルを最適化し、効率的な実行を保証することもできます。TorchScript にエクスポートするもう一つの利点は、様々なハードウェアプラットフォームでモデルの実行を高速化できる可能性があることです。これは、C++環境、組み込みシステム、またはウェブやモバイルアプリケーションに統合できる、PyTorch モデルのスタンドアロンで量産可能な表現を作成します。
TorchScript モデルの主な特徴
TorchScript PyTorch 、エコシステムの重要な部分であり、ディープラーニングモデルの最適化と展開のための強力な機能を提供します。
ここでは、TorchScript を開発者にとって価値あるツールにしている主な機能を紹介する:
-
静的グラフ実行:TorchScript は、モデルの計算を静的グラフで表現しており、PyTorch の動的グラフ実行とは異なる。静的グラフ実行では、計算グラフは実際の実行の前に一度定義され、コンパイルされる。
-
モデルのシリアライズ:TorchScript では、PyTorch のモデルをプラットフォームに依存しない形式にシリアライズすることができます。シリアライズされたモデルは、元のPython 。
-
JITコンパイル:TorchScript は、PyTorch のモデルを最適化された中間表現に変換するために、ジャスト・イン・タイム(JIT)コンパイルを使用します。JITはモデルの計算グラフをコンパイルし、ターゲット・デバイス上での効率的な実行を可能にする。
-
言語間の統合:TorchScript を使えば、PyTorch のモデルを、C++、Java、JavaScript などの他の言語にエクスポートすることができる。これにより、PyTorch のモデルを、異なる言語で書かれた既存のソフトウェア・システムに統合することが容易になります。
-
段階的な変換:TorchScript は段階的な変換アプローチを提供し、PyTorch モデルの一部を段階的にTorchScript に変換することができます。この柔軟性は、複雑なモデルを扱う場合や、コードの特定の部分を最適化したい場合に特に役立ちます。
配備オプションTorchScript
YOLO11 モデルをTorchScript フォーマットにエクスポートするコードを見る前に、TorchScript モデルが通常どこで使われるのかを理解しよう。
TorchScript は、機械学習モデルのさまざまな導入オプションを提供している:
-
C++ API:TorchScript の最も一般的な使用例は、その C++ API である。この API を使用すると、最適化されたTorchScript モデルを C++ アプリケーション内で直接ロードして実行することができる。これは、Python が適していなかったり、利用できなかったりする本番環境に最適です。C++ APIは、TorchScript モデルの低オーバーヘッドかつ効率的な実行を提供し、潜在的なパフォーマンスを最大限に引き出します。
-
モバイル・デプロイメント:TorchScript は、モデルをモバイル・デバイスに容易にデプロイ可能な形式に変換するためのツールを提供する。PyTorch モバイルは、iOS およびAndroid アプリ内でこれらのモデルを実行するためのランタイムを提供する。これにより、低レイテンシーのオフライン推論機能が実現し、ユーザーエクスペリエンスとデータプライバシーが向上する。
-
クラウドデプロイメント:TorchScript のモデルは、TorchServeのようなソリューションを使ってクラウドベースのサーバーにデプロイできる。TorchServeは、モデルのバージョン管理、バッチ処理、本番環境でのスケーラブルなデプロイのためのメトリクス監視などの機能を提供します。TorchScript を使ったクラウドデプロイメントにより、APIやその他のウェブサービス経由でモデルにアクセスできるようになります。
TorchScript へのエクスポート :YOLO11 モデルの変換
YOLO11 モデルをTorchScript にエクスポートすることで、さまざまな場所での使用が容易になり、より高速かつ効率的に実行できるようになります。これは、ディープラーニング・モデルを実世界のアプリケーションでより効果的に使いたい人にとって素晴らしいことだ。
インストール
必要なパッケージをインストールするには、以下を実行する:
インストールプロセスに関する詳細な説明とベストプラクティスについては、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")
エクスポートの引数
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
format |
str |
'torchscript' |
エクスポートされたモデルのターゲットフォーマットで、さまざまな展開環境との互換性を定義します。 |
imgsz |
int または tuple |
640 |
モデル入力に必要な画像サイズ。正方形画像の場合は整数,正方形画像の場合はタプルになります. (height, width) 具体的な寸法については |
optimize |
bool |
False |
モバイルデバイス向けの最適化を適用し、モデルサイズを縮小してパフォーマンスを向上させる可能性があります。 |
nms |
bool |
False |
正確で効率的な検出の後処理に不可欠なNMS(Non-Maximum Suppression)を追加。 |
batch |
int |
1 |
エクスポートモデルのバッチ推論サイズ、またはエクスポートされたモデルが同時に処理する画像の最大数を指定します。 predict モードだ。 |
エクスポートプロセスの詳細については、Ultralytics ドキュメントのエクスポートに関するページをご覧ください。
エクスポートされたYOLO11 TorchScript モデルの展開
Ultralytics YOLO11 モデルをTorchScript フォーマットにエクスポートすることに成功したら、それらをデプロイすることができます。TorchScript モデルを実行するための最初のステップとして推奨されるのは、YOLO("model.torchscript") メソッドを利用することです。しかし、その他の様々な設定におけるTorchScript モデルのデプロイに関する詳細な説明については、以下のリソースをご覧ください:
-
モバイル配備を探る:モバイル展開 PyTorchモバイルドキュメントは、モバイルデバイスにモデルを展開するための包括的なガイドラインを提供し、アプリケーションの効率性と応答性を保証します。
-
マスターサーバー側の展開:スケーラブルで効率的なモデル配信のためのステップバイステップのチュートリアルを提供します。
-
C++の導入:C++ でのTorchScript モデルのロードに関するチュートリアルをご覧ください。C++ アプリケーションへのTorchScript モデルの統合が容易になり、パフォーマンスと汎用性が向上します。
概要
このガイドでは、Ultralytics YOLO11 モデルをTorchScript フォーマットにエクスポートするプロセスについて説明します。提供された指示に従うことで、YOLO11 モデルのパフォーマンスを最適化し、さまざまなプラットフォームや環境に展開する柔軟性を得ることができます。
使い方の詳細については、TorchScript の公式ドキュメントをご覧ください。
また、その他のUltralytics YOLO11 の統合について詳しくお知りになりたい場合は、統合ガイドのページをご覧ください。有用なリソースや見識がたくさん見つかります。
よくあるご質問
Ultralytics YOLO11 モデルからTorchScript へのエクスポートとは?
Ultralytics YOLO11 モデルをTorchScript にエクスポートすることで、柔軟なクロスプラットフォーム展開が可能になる。TorchScriptまた、PyTorch エコシステムの一部であるC++は、モデルのシリアライズを容易にし、Python のサポートがない環境でも実行できるようにします。このため、組み込みシステム、C++環境、モバイル・アプリケーション、さらにはウェブ・ブラウザでのモデルのデプロイに最適です。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")
エクスポート処理の詳細については、Ultralytics のエクスポートに関するドキュメントを参照してください。
YOLO11 モデルのデプロイにTorchScript を使うべき理由は?
YOLO11 モデルの展開にTorchScript を使用すると、いくつかの利点がある:
- 移植性:エクスポートされたモデルは、C++アプリケーション、組み込みシステム、モバイル機器など、Python を必要としない環境で実行できます。
- 最適化:TorchScript は、静的グラフ実行とJIT(Just-In-Time)コンパイルをサポートしており、モデルのパフォーマンスを最適化することができます。
- 言語間の統合:TorchScript のモデルは他のプログラミング言語に統合することができ、柔軟性と拡張性を高めます。
- シリアライズ:モデルをシリアライズすることで、プラットフォームに依存しないロードと推論が可能になる。
配備に関する詳細については、PyTorch Mobile Documentation、TorchServe Documentation、C++ Deployment Guideをご覧ください。
YOLO11 のモデルをTorchScript にエクスポートするためのインストール手順を教えてください。
YOLO11 モデルのエクスポートに必要なパッケージをインストールするには、以下のコマンドを使用します:
詳しい手順については、Ultralytics インストールガイドをご覧ください。インストール中に問題が発生した場合は、「よくある問題」ガイドを参照してください。
エクスポートしたTorchScript YOLO11 のモデルはどのように配置するのですか?
YOLO11 モデルをTorchScript フォーマットにエクスポートした後、様々なプラットフォームに展開することができます:
- C++ API:低オーバーヘッドで高効率な生産環境に最適。
- モバイル展開:iOS およびAndroid アプリケーションにはPyTorch Mobileを使用する。
- クラウド展開:スケーラブルなサーバーサイドデプロイメントにTorchServeのようなサービスを活用する。
TorchScript の機能をフルに活用するために、これらの環境でモデルを展開するための包括的なガイドラインを探る。