コンテンツへスキップ

TensorRT YOLOv8 モデルのエクスポート

高性能環境でコンピュータビジョンモデルを展開するには、スピードと効率を最大化するフォーマットが必要になることがあります。これは、NVIDIA GPU上でモデルを展開する場合に特に当てはまります。

TensorRT エクスポート・フォーマットを使用することで Ultralytics YOLOv8モデルを強化することができます。このガイドでは、変換プロセスの手順をわかりやすく説明し、ディープラーニング・プロジェクトでNVIDIAの先進技術を最大限に活用できるようにします。

TensorRT

TensorRT 概要

TensorRTNVIDIAによって開発されたこのSDKは、高速ディープラーニング推論用に設計された先進的なソフトウェア開発キット(SDK)である。物体検出のようなリアルタイムアプリケーションに適している。

このツールキットは、NVIDIA GPU 向けにディープラーニングモデルを最適化し、より高速で効率的なオペレーションを実現します。TensorRT モデルは、レイヤー融合、精度キャリブレーション(INT8 および FP16)、動的tensor メモリ管理、およびカーネル自動チューニングなどの技術を含むTensorRT 最適化を受けます。ディープラーニングモデルをTensorRT 形式に変換することで、開発者は NVIDIA GPU の潜在能力を十分に発揮することができます。

TensorRT は、TensorFlow 、PyTorch 、ONNX を含む様々なモデルフォーマットとの互換性で知られており、開発者に異なるフレームワークのモデルを統合し最適化するための柔軟なソリューションを提供します。この汎用性により、多様なハードウェアおよびソフトウェア環境での効率的なモデル展開が可能になります。

TensorRT モデルの主な特徴

TensorRT モデルは、高速ディープラーニング推論における効率性と有効性に貢献する、さまざまな主要機能を提供する:

  • 精密キャリブレーション:TensorRT は精密キャリブレーションをサポートしており、特定の精度要件に合わせてモデルを微調整することができます。これにはINT8やFP16のような低精度フォーマットのサポートも含まれ、許容可能な精度レベルを維持しながら推論速度をさらに向上させることができます。

  • レイヤー融合:TensorRT 最適化プロセスには、ニューラルネットワークの複数のレイヤーを1つの演算に統合するレイヤー融合が含まれます。これにより計算オーバーヘッドが削減され、メモリアクセスと計算が最小化されるため推論速度が向上します。

TensorRT レイヤー・フュージョン

  • DynamicTensor Memory Management:TensorRT は、推論中のtensor メモリ使用量を効率的に管理し、メモリ・オーバーヘッドを削減し、メモリ割り当てを最適化します。その結果、GPU メモリの利用効率が向上します。

  • 自動カーネル・チューニング:TensorRT 自動カーネル・チューニングを適用し、モデルの各レイヤーに最適化されたGPUカーネルを選択します。この適応的なアプローチにより、モデルがGPUの計算能力をフルに活用できるようになります。

配備オプションTensorRT

YOLOv8 モデルをTensorRT フォーマットにエクスポートするコードを見る前に、TensorRT モデルが通常どこで使われるのかを理解しよう。

TensorRT にはいくつかの導入オプションがあり、各オプションで統合のしやすさ、パフォーマンスの最適化、柔軟性のバランスが異なっている:

  • TensorFlow 内に配置する: この方法はTensorRT をTensorFlow に統合し、最適化されたモデルを使い慣れたTensorFlow 環境で実行できるようにします。TF-TRTはこれらを効率的に処理できるため、サポートされているレイヤーとサポートされていないレイヤーが混在するモデルに便利です。

TensorRT 概要

  • スタンドアロンTensorRT ランタイムAPI:きめ細かい制御が可能で、パフォーマンスを重視するアプリケーションに最適。より複雑ですが、サポートされていない演算子のカスタム実装が可能です。

  • NVIDIATriton 推論サーバー:様々なフレームワークのモデルをサポートするオプション。特にクラウドやエッジ推論に適しており、モデルの同時実行やモデル分析などの機能を提供する。

YOLOv8 モデルのエクスポートTensorRT

YOLOv8 モデルをTensorRT フォーマットに変換することで、実行効率を向上させ、パフォーマンスを最適化することができます。

インストール

必要なパッケージをインストールするには

インストール

# Install the required package for YOLOv8
pip install ultralytics

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

使用方法

使い方の説明に入る前に、 Ultralytics が提供するYOLOv8 モデルのラインナップをご確認ください。これは、あなたのプロジェクトの要件に最も適したモデルを選択するのに役立ちます。

使用方法

from ultralytics import YOLO

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

# Export the model to TensorRT format
model.export(format='engine')  # creates 'yolov8n.engine'

# Load the exported TensorRT model
tensorrt_model = YOLO('yolov8n.engine')

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

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

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

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

Ultralytics YOLOv8 モデルをTensorRT フォーマットにエクスポートすることに成功しました。様々な設定でのTensorRT モデルのデプロイに関する詳しい説明は、以下のリソースをご覧ください:

概要

このガイドでは、Ultralytics YOLOv8 モデルを NVIDIA のTensorRT モデルフォーマットに変換することに焦点を当てました。この変換ステップは、YOLOv8 モデルの効率と速度を向上させ、より効果的で多様な展開環境に適したものにするために非常に重要です。

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

その他のUltralytics YOLOv8 の統合についてご興味がおありでしたら、統合ガイドのページで、有益なリソースや洞察を幅広くご紹介しています。



作成日:2024-01-28 更新日:2024-01-28
作成者:abirami-vina(1)

コメント