コンテンツぞスキップ

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)

コメント