コンテンツぞスキップ

TensorRT YOLOv8 モデルの゚クスポヌト

高性胜環境でコンピュヌタビゞョンモデルを展開するには、スピヌドず効率を最倧化するフォヌマットが必芁になるこずがありたす。これは、NVIDIA GPU䞊でモデルを展開する堎合に特に圓おはたりたす。

TensorRT ゚クスポヌト・フォヌマットを䜿甚するこずで Ultralytics YOLOv8NVIDIA モデルを匷化するこずができたす。このガむドでは、倉換プロセスの手順をわかりやすく説明し、ディヌプラヌニング・プロゞェクトでNVIDIA の高床なテクノロゞヌを最倧限に掻甚できるようにしたす。

TensorRT

TensorRT 抂芁

TensorRTNVIDIA 、高速ディヌプラヌニング掚論甚に蚭蚈された先進的な゜フトりェア開発キットSDKである。物䜓怜出のようなリアルタむムアプリケヌションに適しおいる。

このツヌルキットは、ディヌプラヌニングモデルをNVIDIA GPU 向けに最適化し、より高速で効率的なオペレヌションを実珟したす。TensorRT モデルはTensorRT 最適化を受けたすが、これにはレむダヌ融合、粟床キャリブレヌションINT8 および FP16、動的tensor メモリ管理、カヌネル自動チュヌニングなどの技術が含たれたす。ディヌプラヌニングモデルをTensorRT 圢匏に倉換するこずで、開発者はNVIDIA GPUの朜圚胜力を十分に発揮するこずができたす。

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

TensorRT モデルの䞻な特城

TensorRT モデルは、高速ディヌプラヌニング掚論における効率性ず有効性に貢献する、さたざたな䞻芁機胜を提䟛する

  • 粟密キャリブレヌション:TensorRT は粟密キャリブレヌションをサポヌトしおおり、特定の粟床芁件に合わせおモデルを埮調敎するこずができたす。これにはINT8やFP16のような䜎粟床フォヌマットのサポヌトも含たれ、蚱容可胜な粟床レベルを維持しながら掚論速床をさらに向䞊させるこずができたす。

  • レむダヌ融合TensorRT 最適化プロセスには、ニュヌラルネットワヌクの耇数のレむダヌを1぀の挔算に統合するレむダヌ融合が含たれたす。これにより蚈算オヌバヌヘッドが削枛され、メモリアクセスず蚈算が最小化されるため掚論速床が向䞊したす。

TensorRT レむダヌ・フュヌゞョン

  • 動的なTensor メモリ管理TensorRT 掚論䞭のtensor メモリ䜿甚量を効率的に管理し、メモリのオヌバヌヘッドを枛らし、メモリ割り圓おを最適化する。その結果、より効率的なGPU メモリ利甚が可胜になる。

  • 自動カヌネル・チュヌニングTensorRT は、モデルの各局に最も最適化されたGPU カヌネルを遞択する自動カヌネル・チュヌニングを適甚する。この適応的アプロヌチは、モデルがGPU の蚈算胜力をフルに掻甚するこずを保蚌する。

配備オプションTensorRT

゚クスポヌトのコヌドを芋る前に YOLOv8 models を TensorRT フォヌマット、どこにあるかを理解したしょう TensorRT 通垞、モデルが䜿甚されたす。

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

  • TensorFlow 内に配眮する: この方法はTensorRT をTensorFlow に統合し、最適化されたモデルを䜿い慣れたTensorFlow 環境で実行できるようにしたす。TF-TRTはこれらを効率的に凊理できるため、サポヌトされおいるレむダヌずサポヌトされおいないレむダヌが混圚するモデルに䟿利です。

TensorRT 抂芁

  • スタンドアロンTensorRT ランタむムAPIきめ现かい制埡が可胜で、パフォヌマンスを重芖するアプリケヌションに最適。より耇雑ですが、サポヌトされおいない挔算子のカスタム実装が可胜です。

  • NVIDIA Triton 掚論サヌバヌ様々なフレヌムワヌクのモデルをサポヌトするオプション。特にクラりドや゚ッゞ掚論に適しおおり、モデルの同時実行やモデル分析などの機胜を提䟛する。

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 ドキュメントの゚クスポヌトに関するペヌゞをご芧ください。

INT8 量子化によるTensorRT の゚クスポヌト

INT8 粟床のTensorRT を䜿甚しおUltralytics YOLO モデルを゚クスポヌトするず、ポストトレヌニング量子化PTQが実行されたす。TensorRT はPTQのためにキャリブレヌションを䜿甚したす。これは、YOLO モデルが代衚的な入力デヌタに察しお掚論を凊理する際に、各アクティベヌションtensor 内のアクティベヌションの分垃を枬定し、その分垃を䜿甚しお各tensor のスケヌル倀を掚定したす。量子化の候補ずなる各掻性化tensor は、キャリブレヌションプロセスによっお掚枬される関連スケヌルを持぀。

暗黙的に量子化されたネットワヌクを凊理するずき、TensorRT はレむダヌの実行時間を最適化するためにINT8を臚機応倉に䜿甚する。あるレむダがINT8で高速に動䜜し、そのデヌタ入出力に量子化スケヌルが割り圓おられおいる堎合、INT8粟床のカヌネルがそのレむダに割り圓おられる。そうでない堎合、TensorRT 、そのレむダの実行時間が速くなる方に基づいお、カヌネルにFP32たたはFP16のいずれかの粟床を遞択する。

チップ

范正結果はデバむスによっお異なる可胜性があるため、TensorRT モデルりェむトを配備に䜿甚するデバむスず同じものを INT8 粟床で゚クスポヌトするために䜿甚するこずが重芁です。

INT8゚クスポヌトの蚭定

を䜿甚する際に提䟛される匕数です。 茞出 Ultralytics YOLO モデルの堎合 倧いに ぱクスポヌトされたモデルのパフォヌマンスに圱響したす。たた、利甚可胜なデバむスリ゜ヌスに基づいお遞択する必芁がありたすが、デフォルトの匕数 べきである ほずんどの堎合 Ampere (たたは新しい)NVIDIA ディスクリヌトGPU.䜿甚される校正アルゎリズムは "ENTROPY_CALIBRATION_2" オプションの詳现に぀いおは、こちらをご芧ください。 TensorRT 開発者ガむドUltralytics テストによるず "ENTROPY_CALIBRATION_2" が最良の遞択であり、茞出はこのアルゎリズムを䜿うこずが確定しおいる。

  • workspace :モデルの重みを倉換する際のデバむスメモリの割り圓おサむズGiB単䜍を制埡したす。

    • を調敎する。 workspace 校正のニヌズずリ゜ヌスの利甚可胜性に応じお、倀を蚭定しおください。より倧きな workspace 范正時間が長くなる可胜性がありたすが、その分、TensorRT 、最適化の戊術を幅広く怜蚎できるようになり、モデルの性胜ず粟床が向䞊する可胜性がありたす。逆に workspace は范正時間を短瞮できるが、最適化戊略が制限され、量子化モデルの品質に圱響を䞎える可胜性がある。

    • デフォルトは workspace=4 (GiB、キャリブレヌションがクラッシュする譊告なしに終了する堎合は、この倀を増やす必芁があるかもしれたせん。

    • TensorRT 報告する UNSUPPORTED_STATE の倀が workspace の倀は、デバむスが利甚可胜なメモリよりも倧きい。 workspace を䞋げるべきである。

    • もし workspace が最倧倀に蚭定され、范正が倱敗/クラッシュする堎合は、以䞋の倀を䞋げるこずを怜蚎しおください。 imgsz そしお batch を䜿甚するこずで、必芁なメモリを削枛するこずができる。

    • INT8のキャリブレヌションは各デバむスに固有であるこずを忘れないでください。キャリブレヌションのために "ハむ゚ンド"GPU を借甚するず、掚論を他のデバむスで実行したずきにパフォヌマンスが䜎䞋する可胜性がありたす。

  • batch :掚論に䜿甚される最倧バッチサむズ。掚論䞭、より小さいバッチを䜿甚するこずもできるが、掚論は指定されたバッチより倧きいバッチは受け付けない。

泚

キャリブレヌション䞭、2回 batch 提䟛されたサむズが䜿甚される。小バッチの䜿甚は、范正時に䞍正確なスケヌリングに぀ながる可胜性がありたす。これは、プロセスが芋たデヌタに基づいお調敎するためです。小ロットの堎合、倀の党範囲を把握できない可胜性があり、最終的な范正に問題が生じるため batch サむズは自動的に2倍になる。バッチサむズが指定されおいない堎合 batch=1校正は batch=1 * 2 范正のスケヌリング誀差を枛らす。

NVIDIA の実隓によるず、INT8量子化キャリブレヌションでは、モデルのデヌタを代衚するキャリブレヌション画像を少なくずも500枚䜿甚するこずを掚奚しおいたす。これはガむドラむンであり ハヌド ず あなたのデヌタセットで䜕が必芁かを詊しおみる必芁がある。 TensorRT 、INT8の范正には范正デヌタが必芁ですので、必ず data 匕数 int8=True TensorRT 、䜿甚する。 data="my_dataset.yaml"の画像を䜿甚する。 バリデヌション で校正する。に倀が枡されない堎合 data INT8量子化でTensorRT 。 モデルタスクに基づく "小さな "サンプルデヌタセット ゚ラヌをスロヌしない。

䟋

from ultralytics import YOLO

model = YOLO("yolov8n.pt")
model.export(
    format="engine",
    dynamic=True,  # (1)!
    batch=8,  # (2)!
    workspace=4,  # (3)!
    int8=True,
    data="coco.yaml",  # (4)!
)

# Load the exported TensorRT INT8 model
model = YOLO("yolov8n.engine", task="detect")

# Run inference
result = model.predict("https://ultralytics.com/images/bus.jpg")
  1. で゚クスポヌトする堎合、デフォルトで有効になりたす。 int8=True 明瀺的に蚭定されおいない堎合でも参照 茞出匕数 をご芧ください。
  2. で范正する゚クスポヌトモデルの最倧バッチサむズを 8 に蚭定したす。 batch = 2 * 8 校正時のスケヌリング゚ラヌを避けるため。
  3. 倉換凊理のためにデバむス党䜓を割り圓おる代わりに、4GiBのメモリを割り圓おる。
  4. COCOデヌタセットを校正に䜿甚、特に怜蚌に䜿甚した画像合蚈5,000枚。
# Export a YOLOv8n PyTorch model to TensorRT format with INT8 quantization
yolo export model=yolov8n.pt format=engine batch=8 workspace=4 int8=True data=coco.yaml  # creates 'yolov8n.engine''

# Run inference with the exported TensorRT quantized model
yolo predict model=yolov8n.engine source='https://ultralytics.com/images/bus.jpg'
キャリブレヌション・キャッシュ

TensorRT を生成したす。 .cache これは、同じデヌタを䜿った将来のモデル重みの゚クスポヌトを高速化するために再利甚するこずができたすが、デヌタが倧きく異なる堎合や、次のような堎合は、キャリブレヌションがうたくいかない可胜性がありたす。 batch 倀が倧幅に倉曎される。このような状況では、既存の .cache は名前を倉えお別のディレクトリに移動するか、完党に削陀する必芁がある。

TensorRT INT8 でYOLO を䜿甚する利点

  • モデルサむズの瞮小FP32からINT8ぞの量子化により、ディスク䞊たたはメモリ䞊のモデルサむズが4分の1になり、ダりンロヌド時間が短瞮されたす。

  • 消費電力の䜎枛INT8で゚クスポヌトされたYOLO モデルの粟床を䞋げた挔算は、FP32モデルに比べお消費電力を抑えるこずができ、特にバッテリヌ駆動のデバむスに適しおいたす。

  • 掚論速床の向䞊 TensorRT は、タヌゲットずなるハヌドりェアに合わせおモデルを最適化するため、GPU、組み蟌みデバむス、アクセラレヌタでの掚論速床が向䞊する可胜性がありたす。

掚論速床に関するメモ

TensorRT INT8 に゚クスポヌトされたモデルを䜿った最初の数回の掚論呌び出しは、前凊理、掚論、埌凊理に通垞より長い時間がかかるこずが予想されたす。これは imgsz 掚論䞭、特に imgsz は、゚クスポヌト時に指定されたものず同じではありたせん゚クスポヌト imgsz はTensorRT 「最適」プロファむルずしお蚭定されおいる。

TensorRT INT8でYOLO 。

  • 評䟡指暙の䜎䞋 より䜎い粟床を䜿甚するず mAP, Precision, Recall たたは モデルの性胜を評䟡するために䜿甚されるその他の指暙 は倚少悪くなる可胜性が高い。以䞋の蚘事を参照されたい。 パフォヌマンス結果セクション の違いを比范する。 mAP50 そしお mAP50-95 様々なデバむスの小さなサンプルでINT8で゚クスポヌトした堎合。

  • 開発時間の増加デヌタセットずデバむスに応じたINT8范正の「最適」蚭定を芋぀けるには、かなりの量のテストが必芁です。

  • ハヌドりェア䟝存性キャリブレヌションや性胜向䞊はハヌドりェアに倧きく䟝存する可胜性があり、モデルの重み付けは移怍性が䜎い。

Ultralytics YOLO TensorRT 茞出実瞟

NVIDIA A100

パフォヌマンス

Ubuntu 22.04.3 LTSでテスト、 python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1

80の蚓緎枈みクラスを含むCOCO䞊で蚓緎されたこれらのモデルの䜿甚䟋に぀いおは、Detection Docsを参照しおください。

泚

掚論時間 mean, min (最速、そしお max (最も遅い) 事前孊習された重みを䜿甚した各テストに぀いお yolov8n.engine

粟密 評䟡詊隓 平均
(ms)
最小最倧
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
batch サむズ
(ピクセル)
FP32 予枬する 0.52 0.51 | 0.56 8 640
FP32 COCOval 0.52 0.52 0.37 1 640
FP16 予枬する 0.34 0.34 | 0.41 8 640
FP16 COCOval 0.33 0.52 0.37 1 640
INT8 予枬する 0.28 0.27 | 0.31 8 640
INT8 COCOval 0.29 0.47 0.33 1 640

COCOで蚓緎されたこれらのモデルの䜿甚䟋に぀いおは、Segmentation Docsを参照しおください。

泚

掚論時間 mean, min (最速、そしお max (最も遅い) 事前孊習された重みを䜿甚した各テストに぀いお yolov8n-seg.engine

粟密 評䟡詊隓 平均
(ms)
最小最倧
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
mAPval
50(M
)
mAPval
50-95(M
)
batch サむズ
(ピクセル)
FP32 予枬する 0.62 0.61 | 0.68 8 640
FP32 COCOval 0.63 0.52 0.36 0.49 0.31 1 640
FP16 予枬する 0.40 0.39 | 0.44 8 640
FP16 COCOval 0.43 0.52 0.36 0.49 0.30 1 640
INT8 予枬する 0.34 0.33 | 0.37 8 640
INT8 COCOval 0.36 0.46 0.32 0.43 0.27 1 640

ImageNetで蚓緎されたこれらのモデルの䜿甚䟋に぀いおは、Classification Docsを参照しおください。

泚

掚論時間 mean, min (最速、そしお max (最も遅い) 事前孊習された重みを䜿甚した各テストに぀いお yolov8n-cls.engine

粟密 評䟡詊隓 平均
(ms)
最小最倧
(ms)
トップ トップ5 batch サむズ
(ピクセル)
FP32 予枬する 0.26 0.25 | 0.28 8 640
FP32 むメヌゞネットバル 0.26 0.35 0.61 1 640
FP16 予枬する 0.18 0.17 | 0.19 8 640
FP16 むメヌゞネットバル 0.18 0.35 0.61 1 640
INT8 予枬する 0.16 0.15 | 0.57 8 640
INT8 むメヌゞネットバル 0.15 0.32 0.59 1 640

COCOで蚓緎されたこれらのモデルの䜿甚䟋に぀いおは、Pose Estimation Docsを参照しおください。

泚

掚論時間 mean, min (最速、そしお max (最も遅い) 事前孊習された重みを䜿甚した各テストに぀いお yolov8n-pose.engine

粟密 評䟡詊隓 平均
(ms)
最小最倧
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
mAPval
50(P
)
mAPval
50-95(P
)
batch サむズ
(ピクセル)
FP32 予枬する 0.54 0.53 | 0.58 8 640
FP32 COCOval 0.55 0.91 0.69 0.80 0.51 1 640
FP16 予枬する 0.37 0.35 | 0.41 8 640
FP16 COCOval 0.36 0.91 0.69 0.80 0.51 1 640
INT8 予枬する 0.29 0.28 | 0.33 8 640
INT8 COCOval 0.30 0.90 0.68 0.78 0.47 1 640

DOTAv1で蚓緎されたこれらのモデルの䜿甚䟋に぀いおは、Oriented Detection Docsを参照のこず。

泚

掚論時間 mean, min (最速、そしお max (最も遅い) 事前孊習された重みを䜿甚した各テストに぀いお yolov8n-obb.engine

粟密 評䟡詊隓 平均
(ms)
最小最倧
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
batch サむズ
(ピクセル)
FP32 予枬する 0.52 0.51 | 0.59 8 640
FP32 DOTAv1val 0.76 0.50 0.36 1 640
FP16 予枬する 0.34 0.33 | 0.42 8 640
FP16 DOTAv1val 0.59 0.50 0.36 1 640
INT8 予枬する 0.29 0.28 | 0.33 8 640
INT8 DOTAv1val 0.32 0.45 0.32 1 640

コンシュヌマヌ向けGPU

怜出性胜COCO

Windows 10.0.19045でテスト、 python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6

泚

掚論時間 mean, min (最速、そしお max (最も遅い) 事前孊習された重みを䜿甚した各テストに぀いお yolov8n.engine

粟密 評䟡詊隓 平均
(ms)
最小最倧
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
batch サむズ
(ピクセル)
FP32 予枬する 1.06 0.75 | 1.88 8 640
FP32 COCOval 1.37 0.52 0.37 1 640
FP16 予枬する 0.62 0.75 | 1.13 8 640
FP16 COCOval 0.85 0.52 0.37 1 640
INT8 予枬する 0.52 0.38 | 1.00 8 640
INT8 COCOval 0.74 0.47 0.33 1 640

Windows 10.0.22631でテスト、 python 3.11.9, ultralytics==8.2.4, tensorrt==10.0.1

泚

掚論時間 mean, min (最速、そしお max (最も遅い) 事前孊習された重みを䜿甚した各テストに぀いお yolov8n.engine

粟密 評䟡詊隓 平均
(ms)
最小最倧
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
batch サむズ
(ピクセル)
FP32 予枬する 1.76 1.69 | 1.87 8 640
FP32 COCOval 1.94 0.52 0.37 1 640
FP16 予枬する 0.86 0.75 | 1.00 8 640
FP16 COCOval 1.43 0.52 0.37 1 640
INT8 予枬する 0.80 0.75 | 1.00 8 640
INT8 COCOval 1.35 0.47 0.33 1 640

Pop!_OS 22.04 LTSでテスト、 python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1

泚

掚論時間 mean, min (最速、そしお max (最も遅い) 事前孊習された重みを䜿甚した各テストに぀いお yolov8n.engine

粟密 評䟡詊隓 平均
(ms)
最小最倧
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
batch サむズ
(ピクセル)
FP32 予枬する 2.84 2.84 | 2.85 8 640
FP32 COCOval 2.94 0.52 0.37 1 640
FP16 予枬する 1.09 1.09 | 1.10 8 640
FP16 COCOval 1.20 0.52 0.37 1 640
INT8 予枬する 0.75 0.74 | 0.75 8 640
INT8 COCOval 0.76 0.47 0.33 1 640

組み蟌み機噚

怜出性胜COCO

JetPack 6.0 (L4T 36.3) Ubuntu 22.04.4 LTSでテスト、 python 3.10.12, ultralytics==8.2.16, tensorrt==10.0.1

泚

掚論時間 mean, min (最速、そしお max (最も遅い) 事前孊習された重みを䜿甚した各テストに぀いお yolov8n.engine

粟密 評䟡詊隓 平均
(ms)
最小最倧
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
batch サむズ
(ピクセル)
FP32 予枬する 6.11 6.10 | 6.29 8 640
FP32 COCOval 6.17 0.52 0.37 1 640
FP16 予枬する 3.18 3.18 | 3.20 8 640
FP16 COCOval 3.19 0.52 0.37 1 640
INT8 予枬する 2.30 2.29 | 2.35 8 640
INT8 COCOval 2.32 0.46 0.32 1 640

むンフォメヌション

NVIDIA JetsonwithUltralytics YOLO の クむックスタヌトガむドで、セットアップず蚭定の詳现をご芧ください。

評䟡方法

これらのモデルがどのように゚クスポヌトされ、テストされたかに぀いおは、以䞋のセクションを参照しおください。

゚クスポヌト蚭定

゚クスポヌト蚭定匕数の詳现に぀いおは、゚クスポヌト・モヌドを参照しおください。

from ultralytics import YOLO

model = YOLO("yolov8n.pt")

# TensorRT FP32
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2)

# TensorRT FP16
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, half=True)

# TensorRT INT8 with calibration `data` (i.e. COCO, ImageNet, or DOTAv1 for appropriate model task)
out = model.export(
    format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, int8=True, data="coco8.yaml"
)
予枬ルヌプ

詳现は予枬モヌドを参照。

import cv2

from ultralytics import YOLO

model = YOLO("yolov8n.engine")
img = cv2.imread("path/to/image.jpg")

for _ in range(100):
    result = model.predict(
        [img] * 8,  # batch=8 of the same image
        verbose=False,
        device="cuda",
    )
バリデヌション蚭定

参照 val モヌド を参照しおください。

from ultralytics import YOLO

model = YOLO("yolov8n.engine")
results = model.val(
    data="data.yaml",  # COCO, ImageNet, or DOTAv1 for appropriate model task
    batch=1,
    imgsz=640,
    verbose=False,
    device="cuda",
)

゚クスポヌトされたYOLOv8 TensorRT モデルの展開

Ultralytics YOLOv8 モデルをTensorRT フォヌマットに゚クスポヌトするこずに成功したした。様々な蚭定でのTensorRT モデルのデプロむに関する詳しい説明は、以䞋のリ゜ヌスをご芧ください

抂芁

このガむドでは、Ultralytics YOLOv8 のモデルを、NVIDIA'TensorRT のモデルフォヌマットに倉換するこずに焊点を圓おた。この倉換ステップは、YOLOv8 モデルの効率ず速床を向䞊させ、より効果的で倚様な展開環境に適したものにするために非垞に重芁です。

䜿い方の詳现に぀いおは、TensorRT 公匏ドキュメントをご芧ください。

その他のUltralytics YOLOv8 の統合に぀いおご興味がおありでしたら、統合ガむドのペヌゞで、有益なリ゜ヌスや掞察を幅広くご玹介しおいたす。

よくあるご質問

YOLOv8 モデルをTensorRT フォヌマットに倉換する方法は

Ultralytics YOLOv8 のモデルをTensorRT 圢匏に倉換し、最適化されたNVIDIA GPU 掚論を行うには、以䞋の手順に埓う

  1. 必芁なパッケヌゞをむンストヌルする

    pip install ultralytics
    
  2. YOLOv8 モデルを゚クスポヌトしたす

    from ultralytics import YOLO
    
    model = YOLO("yolov8n.pt")
    model.export(format="engine")  # creates 'yolov8n.engine'
    
    # Run inference
    model = YOLO("yolov8n.engine")
    results = model("https://ultralytics.com/images/bus.jpg")
    

詳现に぀いおは、YOLOv8 むンストヌルガむドおよび゚クスポヌトドキュメントをご芧ください。

YOLOv8 モデルにTensorRT を䜿甚する利点は䜕ですか

YOLOv8 モデルを最適化するためにTensorRT を䜿甚するず、いく぀かの利点がある

  • 掚論速床の高速化TensorRT はモデルレむダヌを最適化し、高粟床キャリブレヌションINT8ずFP16を䜿甚するこずで、粟床を倧幅に犠牲にするこずなく掚論速床を高速化したす。
  • メモリ効率TensorRT はtensor のメモリを動的に管理し、オヌバヌヘッドを削枛し、GPU のメモリ䜿甚率を向䞊させる。
  • レむダヌ融合耇数のレむダヌを1぀の挔算に統合し、蚈算の耇雑さを軜枛する。
  • カヌネルの自動チュヌニング各モデルレむダヌに最適化されたGPU カヌネルを自動的に遞択し、最高のパフォヌマンスを保蚌したす。

詳しくは、TensorRT の詳现機胜をご芧ください。たた、TensorRT の抂芁セクションもご芧ください。

TensorRT 、YOLOv8 モデルで INT8 量子化を䜿甚できたすか

はい、TensorRT 、INT8量子化を䜿っおYOLOv8 モデルを゚クスポヌトするこずができたす。このプロセスには、孊習埌の量子化PTQずキャリブレヌションが含たれたす

  1. INT8で゚クスポヌト

    from ultralytics import YOLO
    
    model = YOLO("yolov8n.pt")
    model.export(format="engine", batch=8, workspace=4, int8=True, data="coco.yaml")
    
  2. 掚論を実行する

    from ultralytics import YOLO
    
    model = YOLO("yolov8n.engine", task="detect")
    result = model.predict("https://ultralytics.com/images/bus.jpg")
    

詳现に぀いおは、INT8量子化でTensorRT 。

YOLOv8 TensorRT モデルをNVIDIA Triton 掚論サヌバヌにデプロむするには

YOLOv8 TensorRT モデルをNVIDIA Triton Inference Server にデプロむするには、以䞋のリ゜ヌスを䜿甚する

これらのガむドは、YOLOv8 モデルをさたざたな配備環境で効率的に統合するのに圹立぀。

TensorRT に゚クスポヌトされたYOLOv8 モデルで確認されたパフォヌマンスの向䞊ずは

TensorRT によるパフォヌマンスの向䞊は、䜿甚するハヌドりェアによっお異なりたす。以䞋は代衚的なベンチマヌクです

  • NVIDIA A100:

    • FP32掚論~0.52ミリ秒/画像
    • FP16掚論~0.34ミリ秒/画像
    • INT8掚論~0.28ミリ秒/画像
    • INT8粟床ではmAPがわずかに枛少しおいるが、スピヌドは倧幅に向䞊しおいる。
  • コンシュヌマヌ向けGPU䟋RTX 3080

    • FP32掚論~1.06ミリ秒/画像
    • FP16掚論~0.62ミリ秒/画像
    • INT8掚論~0.52ミリ秒/画像

さたざたなハヌドりェア構成の詳现な性胜ベンチマヌクは、性胜のセクションで芋るこずができる。

TensorRT のパフォヌマンスに関するより包括的な掞察に぀いおは、Ultralytics のドキュメントおよびパフォヌマンス分析レポヌトを参照しおください。



䜜成日2024-01-28 曎新日2024-07-10
䜜成者glenn-jocher(10),ambitious-octopus(1),lakshanthad(1),IvorZhu331(1),Burhan-Q(2),abirami-vina(1)

コメント