コンテンツへスキップ

YOLOv8 迅速な展開のためのTorchScript へのモデルのエクスポート

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

Torchscript にエクスポートしてシリアライズ Ultralytics YOLOv8このガイドでは、 のモデルを 形式にエクスポートする方法を紹介します。このガイドでは、YOLOv8 のモデルをTorchScript フォーマットにエクスポートし、より幅広いアプリケーションで使用できるようにする方法を紹介します。

なぜTorchScript 。

Torchscript 概要

PyTorch のクリエイターによって開発されたTorchScript は、PyTorch のモデルを様々なプラットフォームで最適化し、展開するための強力なツールです。YOLOv8 モデルを TorchScriptにエクスポートすることは、研究から実世界のアプリケーションに移行するために非常に重要です。TorchScript PyTorch フレームワークの一部であるPyTorch は、Python をサポートしていない環境でも モデルを使用できるようにすることで、この移行をスムーズにする。

このプロセスには、トレースとスクリプティングという2つの技法がある。トレースはモデル実行中の操作を記録し、スクリプトはPython のサブセットを使ってモデルを定義することができる。これらのテクニックは、YOLOv8 のようなモデルが、通常のPython 環境の外でも魔法を使えることを保証する。

TorchScript スクリプトとトレース

TorchScript モデルは、演算子融合やメモリ使用量の改良などの技術によって最適化され、効率的な実行を保証することもできます。TorchScript にエクスポートするもう一つの利点は、様々なハードウェアプラットフォームでモデルの実行を高速化できる可能性があることです。C++環境、組み込みシステム、またはウェブやモバイルアプリケーションに統合できる、PyTorch モデルのスタンドアロンで量産可能な表現が作成されます。

TorchScript モデルの主な特徴

TorchScript PyTorch 、エコシステムの重要な部分であり、ディープラーニングモデルの最適化と展開のための強力な機能を提供します。

TorchScript 特徴

ここでは、TorchScript を開発者にとって価値あるツールにしている主な機能を紹介する:

  • 静的グラフ実行:TorchScript は、モデルの計算を静的グラフで表現しており、PyTorchの動的グラフ実行とは異なる。静的グラフ実行では、計算グラフは実際の実行の前に一度定義され、コンパイルされる。

  • モデルのシリアライズ:TorchScript では、PyTorch のモデルをプラットフォームに依存しない形式にシリアライズすることができます。シリアライズされたモデルは、オリジナルのPython 。

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

  • 言語間の統合:TorchScript を使えば、PyTorch のモデルを、C++、Java、JavaScript などの他の言語にエクスポートすることができる。これにより、PyTorch のモデルを、異なる言語で書かれた既存のソフトウェア・システムに統合することが容易になります。

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

配備オプションTorchScript

YOLOv8 モデルを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 へのエクスポート :YOLOv8 モデルの変換

YOLOv8 モデルをTorchScript にエクスポートすることで、さまざまな場所での使用が容易になり、より高速かつ効率的に実行できるようになります。これは、ディープラーニング・モデルを実世界のアプリケーションでより効果的に使いたい人にとって素晴らしいことだ。

インストール

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

インストール

# 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 TorchScript format
model.export(format='torchscript')  # creates 'yolov8n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO('yolov8n.torchscript')

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

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

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

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

Ultralytics YOLOv8 モデルをTorchScript フォーマットにエクスポートすることに成功したら、それらをデプロイすることができます。TorchScript モデルを実行するための最初のステップとして推奨されるのは、YOLO("model.torchscript") メソッドを利用することです。しかし、その他の様々な設定におけるTorchScript モデルのデプロイに関する詳細な説明については、以下のリソースをご覧ください:

  • モバイル配備を探る:PyTorch モバイルドキュメントは、モバイルデバイスにモデルを展開するための包括的なガイドラインを提供し、アプリケーションの効率性と応答性を保証します。

  • マスターサーバー側の展開:スケーラブルで効率的なモデル配信のためのステップバイステップのチュートリアルを提供します。

  • C++の導入:C++ でのTorchScript モデルのロードに関するチュートリアルをご覧ください。C++ アプリケーションへのTorchScript モデルの統合が容易になり、パフォーマンスと汎用性が向上します。

概要

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

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

また、その他のUltralytics YOLOv8 の統合について詳しくお知りになりたい場合は、統合ガイドのページをご覧ください。有用なリソースや洞察がたくさん見つかります。



作成日:2024-03-01 更新日:2024-03-03
作成者:glenn-jocher(1),abirami-vina(2)

コメント