モデル・ベンチマークUltralytics YOLO
はじめに
モデルの学習と検証が完了したら、次の論理的なステップは、さまざまな実世界のシナリオでそのパフォーマンスを評価することです。Ultralytics YOLOv8 のベンチマークモードは、様々なエクスポートフォーマットでモデルのスピードと精度を評価するための堅牢なフレームワークを提供することで、この目的に役立ちます。
見るんだ: Ultralytics モードのチュートリアルベンチマーク
なぜベンチマーキングが重要なのか?
- 情報に基づいた決断:スピードと精度のトレードオフに関する洞察を得る。
- リソースの割り当て:異なるエクスポート・フォーマットが異なるハードウェア上でどのように動作するかを理解する。
- 最適化:特定のユースケースに最適なパフォーマンスを提供するエクスポート形式をご覧ください。
- コスト効率:ベンチマークの結果に基づき、ハードウェアリソースをより効率的に使用します。
ベンチマークモードでの主要指標
- mAP50-95:物体検出、セグメンテーション、姿勢推定用。
- accuracy_top5:画像分類用。
- 推論時間:各画像にかかった時間(ミリ秒単位)。
対応エクスポート形式
- ONNX:最適なCPUパフォーマンスのために
- TensorRT:GPU効率を最大化する
- OpenVINO:インテルハードウェアの最適化
- CoreML TensorFlow SavedModel など:多様な配備ニーズに対応
チップ
- ONNX またはOpenVINO にエクスポートして、CPUを最大3倍高速化。
- 最大5倍のGPUスピードアップのためにTensorRT 。
使用例
ONNX,TensorRT など、サポートされているすべてのエクスポート・フォーマットでYOLOv8n ベンチマークを実行する。エクスポート引数の完全なリストについては、以下の引数のセクションを参照してください。
例
論争
などの議論がある。 model
, data
, imgsz
, half
, device
そして verbose
は、ベンチマークを特定のニーズに合わせて微調整し、異なるエクスポート形式のパフォーマンスを簡単に比較できる柔軟性をユーザーに提供します。
キー | デフォルト値 | 説明 |
---|---|---|
model |
None |
モデルファイルへのパスを指定します。以下の両方を受け入れます。 .pt そして .yaml などの形式がある、 "yolov8n.pt" 訓練済みモデルや設定ファイル |
data |
None |
ベンチマーク用のデータセットを定義するYAMLファイルへのパス。通常、検証データのパスと設定を含む。例 "coco8.yaml" . |
imgsz |
640 |
モデルの入力画像サイズ。正方形画像の場合は1つの整数,正方形画像の場合は1つのタプルになります. (width, height) 非正方形の場合、 (640, 480) . |
half |
False |
FP16(半精度)推論を有効にし、メモリ使用量を削減し、互換性のあるハードウェアでは速度を向上させることができる。使用方法 half=True を有効にする。 |
int8 |
False |
INT8 量子化を有効にすることで、サポートされているデバイスのパフォーマンスがさらに最適化されます。設定 int8=True を使用する。 |
device |
None |
ベンチマーク用の計算デバイスを定義します。 "cpu" , "cuda:0" のようなデバイスのリストがある。 "cuda:0,1" マルチGPUセットアップ用。 |
verbose |
False |
ロギング出力の詳細レベルを制御する。ブール値。 verbose=True は詳細なログを、float は閾値エラーを表示する。 |
輸出フォーマット
ベンチマークは、以下のすべての可能なエクスポートフォーマットで自動的に実行されます。
フォーマット | format 議論 |
モデル | メタデータ | 論争 |
---|---|---|---|---|
PyTorch | - | yolov8n.pt |
✅ | - |
TorchScript | torchscript |
yolov8n.torchscript |
✅ | imgsz , optimize , batch |
ONNX | onnx |
yolov8n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolov8n_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolov8n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , batch |
CoreML | coreml |
yolov8n.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolov8n_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolov8n.pb |
❌ | imgsz , batch |
TF ライト | tflite |
yolov8n.tflite |
✅ | imgsz , half , int8 , batch |
TF エッジTPU | edgetpu |
yolov8n_edgetpu.tflite |
✅ | imgsz , batch |
TF.js | tfjs |
yolov8n_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolov8n_paddle_model/ |
✅ | imgsz , batch |
NCNN | ncnn |
yolov8n_ncnn_model/ |
✅ | imgsz , half , batch |
詳細を見る export
詳細は 輸出 ページを参照されたい。
作成日:2023-11-12 更新日:2024-04-27
著者:Glenn-Jocher(12),Burhan-Q(1),RizwanMunawar(1),Laughing-q(1),maianumerosky(1)