Meet YOLO26: next-gen vision AI.

Link to this sectionYOLO26 Modelleri için TensorRT Dışa Aktarımı#

Bilgisayarlı görü modellerini yüksek performanslı ortamlarda devreye almak, hızı ve verimliliği en üst düzeye çıkaran bir format gerektirebilir. Bu durum, özellikle modelini NVIDIA GPU'larında çalıştırırken geçerlidir.

TensorRT dışa aktarma formatını kullanarak, Ultralytics YOLO26 modellerini NVIDIA donanımı üzerinde hızlı ve verimli çıkarım için geliştirebilirsin. Bu kılavuz, dönüştürme süreci için takip etmesi kolay adımlar sunacak ve derin öğrenme projelerinde NVIDIA'nın ileri teknolojisinden en iyi şekilde yararlanmana yardımcı olacaktır.

Link to this sectionTensorRT#

NVIDIA TensorRT optimization workflow

NVIDIA tarafından geliştirilen TensorRT, yüksek hızlı derin öğrenme çıkarımı için tasarlanmış gelişmiş bir yazılım geliştirme kitidir (SDK). Nesne tespiti gibi gerçek zamanlı uygulamalar için oldukça uygundur.

Bu araç seti, derin öğrenme modellerini NVIDIA GPU'ları için optimize eder ve daha hızlı, daha verimli işlemler sağlar. TensorRT modelleri; katman birleştirme, hassasiyet kalibrasyonu (INT8 ve FP16), dinamik tensör bellek yönetimi ve çekirdek otomatik ayarlama gibi teknikleri içeren TensorRT optimizasyonundan geçer. Derin öğrenme modellerini TensorRT formatına dönüştürmek, geliştiricilerin NVIDIA GPU'larının potansiyelini tam olarak kullanmalarını sağlar.

TensorRT; TensorFlow, PyTorch ve ONNX dahil olmak üzere çeşitli model formatlarıyla uyumluluğuyla bilinir ve geliştiricilere farklı çerçevelerden gelen modelleri entegre etmek ve optimize etmek için esnek bir çözüm sunar. Bu çok yönlülük, çeşitli donanım ve yazılım ortamlarında verimli model dağıtımı sağlar.

Link to this sectionTensorRT Modellerinin Temel Özellikleri#

TensorRT modelleri, yüksek hızlı derin öğrenme çıkarımında verimliliklerine ve etkinliklerine katkıda bulunan bir dizi temel özellik sunar:

  • Hassasiyet Kalibrasyonu: TensorRT, modellerin belirli doğruluk gereksinimlerine göre ince ayar yapılmasına olanak tanıyan hassasiyet kalibrasyonunu destekler. Buna, çıkarım hızını artırırken kabul edilebilir doğruluk seviyelerini koruyabilen INT8 ve FP16 gibi düşük hassasiyetli formatlar için destek dahildir.

  • Katman Birleştirme: TensorRT optimizasyon süreci, bir sinir ağının birden fazla katmanının tek bir işlemde birleştirildiği katman birleştirmeyi içerir. Bu, bellek erişimini ve hesaplamayı en aza indirerek işlem yükünü azaltır ve çıkarım hızını artırır.

TensorRT neural network layer fusion optimization

  • Dinamik Tensör Bellek Yönetimi: TensorRT, çıkarım sırasında tensör bellek kullanımını verimli bir şekilde yöneterek bellek yükünü azaltır ve bellek tahsisini optimize eder. Bu, daha verimli GPU bellek kullanımı sağlar.

  • Otomatik Çekirdek Ayarlama: TensorRT, modelin her katmanı için en optimize GPU çekirdeğini seçmek üzere otomatik çekirdek ayarlamayı uygular. Bu uyarlanabilir yaklaşım, modelin GPU'nun hesaplama gücünden tam olarak yararlanmasını sağlar.

Link to this sectionTensorRT'de Dağıtım Seçenekleri#

YOLO26 modellerini TensorRT formatına aktarmak için koda bakmadan önce, TensorRT modellerinin normalde nerede kullanıldığını anlayalım.

TensorRT birkaç dağıtım seçeneği sunar ve her seçenek entegrasyon kolaylığını, performans optimizasyonunu ve esnekliği farklı şekillerde dengeler:

  • TensorFlow içinde Dağıtım: Bu yöntem, TensorRT'yi TensorFlow ile bütünleştirerek optimize edilmiş modellerin tanıdık bir TensorFlow ortamında çalışmasını sağlar. TF-TRT bunları verimli bir şekilde işleyebildiğinden, desteklenen ve desteklenmeyen katmanların karışımına sahip modeller için kullanışlıdır.

NVIDIA TensorRT optimization workflow

  • Bağımsız TensorRT Runtime API: Performans açısından kritik uygulamalar için ideal olan ayrıntılı kontrol sunar. Daha karmaşıktır ancak desteklenmeyen operatörlerin özel olarak uygulanmasına olanak tanır.

  • NVIDIA Triton Inference Server: Çeşitli çerçevelerden gelen modelleri destekleyen bir seçenektir. Özellikle bulut veya uç çıkarımı için uygundur; eşzamanlı model yürütme ve model analizi gibi özellikler sağlar.

Link to this sectionYOLO26 Modellerini TensorRT'ye Aktarma#

YOLO26 modellerini TensorRT formatına dönüştürerek yürütme verimliliğini artırabilir ve performansı optimize edebilirsin.

Link to this sectionKurulum#

Gerekli paketi yüklemek için şunu çalıştır:

Kurulum
# Install the required package for YOLO26
pip install ultralytics

Kurulum süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için YOLO26 Kurulum kılavuzumuza göz atın. YOLO26 için gerekli paketleri kurarken herhangi bir zorlukla karşılaşırsanız, çözümler ve ipuçları için Yaygın Sorunlar kılavuzumuza başvurun.

Link to this sectionKullanım#

Kullanım talimatlarına geçmeden önce, Ultralytics tarafından sunulan YOLO26 modelleri yelpazesine göz attığından emin ol. Bu, proje gereksinimlerin için en uygun modeli seçmene yardımcı olacaktır.

TensorRT formatı; Export, Predict ve Validate modlarını destekler. Çıkarım ve doğrulama için bir NVIDIA GPU gerekir. Modelini dışa aktar, ardından çıkarım çalıştırmak veya doğruluğunu test etmek için dışa aktarılan modeli yükle.

Dışa Aktar (Export)
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TensorRT format
model.export(format="engine")  # creates 'yolo26n.engine'
Tahmin Et (Predict)
from ultralytics import YOLO

# Load the exported TensorRT model
model = YOLO("yolo26n.engine")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Doğrula
from ultralytics import YOLO

# Load the exported TensorRT model
model = YOLO("yolo26n.engine")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this sectionDışa Aktarma Argümanları#

ArgümanTipVarsayılanAçıklama
formatstr'engine'Çeşitli dağıtım ortamlarıyla uyumluluğu tanımlayan, dışa aktarılan model için hedef format.
imgszint veya tuple640Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tamsayı veya belirli boyutlar için (height, width) şeklinde bir demet olabilir.
halfboolFalseFP16 (yarı hassasiyet) nicemlemeyi etkinleştirerek model boyutunu küçültür ve desteklenen donanımlarda çıkarımı hızlandırabilir.
int8boolFalseINT8 kuantizasyonunu etkinleştirir; modeli daha da sıkıştırarak ve minimum doğruluk kaybıyla çıkarımı hızlandırır, temel olarak uç cihazlar için kullanılır.
dynamicboolFalseDinamik giriş boyutlarına izin vererek farklı görüntü boyutlarını işlemede esnekliği artırır.
simplifyboolTrueModel grafiğini onnxslim ile basitleştirerek performansı ve uyumluluğu potansiyel olarak iyileştirir.
workspacefloat veya NoneNoneTensorRT optimizasyonları için maksimum çalışma alanı boyutunu GiB cinsinden ayarlar, bellek kullanımı ve performans arasında denge kurar; TensorRT tarafından cihaz maksimumuna kadar otomatik tahsis için None kullan.
nmsboolFalseDoğru ve verimli tespit sonrası işleme için gerekli olan Non-Maximum Suppression (NMS) ekler.
batchint1Dışa aktarılan modelin toplu çıkarım boyutunu veya dışa aktarılan modelin predict modunda eşzamanlı olarak işleyeceği maksimum görüntü sayısını belirtir.
datastr'coco8.yaml'Kuantizasyon için gerekli olan veri kümesi yapılandırma dosyasının yolu (varsayılan: coco8.yaml).
fractionfloat1.0INT8 nicemleme kalibrasyonu için kullanılacak veri kümesi oranını belirtir. Deneyler veya kaynakların sınırlı olduğu durumlar için yararlı olan tam veri kümesinin bir alt kümesinde kalibrasyona izin verir. INT8 etkinleştirildiğinde belirtilmezse, veri kümesinin tamamı kullanılır.
devicestrNoneDışa aktarma için cihazı belirler: GPU (device=0), NVIDIA Jetson için DLA (device=dla:0 veya device=dla:1).
İpucu

Lütfen TensorRT'ye aktarırken CUDA destekli bir GPU kullandığından emin ol.

TensorRT 11.0 ve DLA

TensorRT 11.0, DLA'yı desteklemez; device=dla:0 veya device=dla:1 için TensorRT 10.x kullan veya bir TensorRT 11.0 GPU motoru dışa aktar.

Dışa aktarma süreci hakkında daha fazla ayrıntı için dışa aktarma hakkındaki Ultralytics dokümantasyon sayfasına git.

Link to this sectionINT8 Nicemleme ile TensorRT Dışa Aktarımı#

Ultralytics YOLO modellerini INT8 hassasiyeti ile TensorRT kullanarak dışa aktarmak, eğitim sonrası nicemleme (PTQ) gerçekleştirir. TensorRT, PTQ için kalibrasyon kullanır; bu, YOLO modeli temsilci girdi verileri üzerinde çıkarım yaparken her aktivasyon tensörü içindeki aktivasyonların dağılımını ölçer ve ardından her tensör için ölçek değerlerini tahmin etmek üzere bu dağılımı kullanır. Nicemleme için aday olan her aktivasyon tensörünün, bir kalibrasyon süreci tarafından türetilen ilişkili bir ölçeği vardır.

TensorRT 11 nicemleme

TensorRT 11, örtük nicemlemeyi ve IInt8Calibrator arayüzünü kaldırdı. TensorRT 11 ve daha yeni sürümlerde Ultralytics, INT8 nicemlemeyi NVIDIA ModelOpt açık nicemleme ile gerçekleştirir; bu, güçlü bir şekilde yazılmış bir motor oluşturmadan önce ONNX grafiğine Q/DQ düğümleri ekler ve FP16, ModelOpt AutoCast karışık hassasiyet dönüşümü ile uygulanır. int8=True, half=True ve data bağımsız değişkenleri aynı şekilde çalışır; ModelOpt ilk kullanımda otomatik olarak kurulur. TensorRT 7-10 sürümlerinde bunun yerine aşağıda açıklanan eski kalibratör kullanılır.

Örtük olarak nicemlenmiş ağları işlerken TensorRT, katman yürütme süresini optimize etmek için INT8'i fırsatçı bir şekilde kullanır. Bir katman INT8'de daha hızlı çalışıyorsa ve veri girişlerinde ve çıkışlarında atanmış nicemleme ölçeklerine sahipse, o katmana INT8 hassasiyetine sahip bir çekirdek atanır, aksi takdirde TensorRT o katman için daha hızlı yürütme süresi sağlayan hangisi ise, FP32 veya FP16 hassasiyetinden birini seçer.

İpucu

Kalibrasyon sonuçları cihazlar arasında değişiklik gösterebileceğinden, dağıtım için TensorRT model ağırlıklarını kullanacak aynı cihazın INT8 hassasiyetiyle dışa aktarma için kullanıldığından emin olmak kritiktir.

Link to this sectionINT8 Dışa Aktarımını Yapılandırma#

Bir Ultralytics YOLO modeli için export kullanılırken sağlanan bağımsız değişkenler, dışa aktarılan modelin performansını büyük ölçüde etkileyecektir. Ayrıca mevcut cihaz kaynaklarına göre seçilmeleri gerekecektir, ancak varsayılan bağımsız değişkenler çoğu Ampere (veya daha yeni) NVIDIA ayrık GPU için çalışmalıdır. Kullanılan kalibrasyon algoritması GPU dışa aktarımları için "MINMAX_CALIBRATION" iken, NVIDIA Jetson üzerindeki DLA dışa aktarımları "ENTROPY_CALIBRATION_2" kullanır. Mevcut seçenekler hakkında daha fazla bilgiyi TensorRT Geliştirici Kılavuzu'nda okuyabilirsin. Ultralytics testleri, GPU dışa aktarımları için "MINMAX_CALIBRATION" seçeneğinin en iyi seçim olduğunu bulmuştur ve algoritma dışa aktarma cihazına göre otomatik olarak seçilir.

  • workspace : Model ağırlıklarını dönüştürürken cihaz belleği tahsisinin boyutunu (GiB cinsinden) kontrol eder.

    • workspace değerini kalibrasyon ihtiyaçlarına ve kaynak kullanılabilirliğine göre ayarla. Daha büyük bir workspace kalibrasyon süresini artırabilse de, TensorRT'nin daha geniş bir optimizasyon taktikleri yelpazesini keşfetmesine olanak tanıyarak model performansını ve doğruluğunu potansiyel olarak artırabilir. Tersine, daha küçük bir workspace kalibrasyon süresini kısaltabilir ancak optimizasyon stratejilerini sınırlayarak nicemlenmiş modelin kalitesini etkileyebilir.

    • Varsayılan workspace=None değeridir, bu da TensorRT'nin otomatik olarak bellek tahsis etmesine olanak tanır; manuel yapılandırma yaparken, kalibrasyon çökerse (uyarı vermeden çıkarsa) bu değerin artırılması gerekebilir.

    • TensorRT will report UNSUPPORTED_STATE during export if the value for workspace is larger than the memory available to the device, which means the value for workspace should be lowered or set to None.

    • Eğer workspace maksimum değere ayarlanmışsa ve kalibrasyon başarısız olursa/çökerse, otomatik tahsis için None kullanmayı veya bellek gereksinimlerini azaltmak için imgsz ve batch değerlerini düşürmeyi düşün.

    • Unutma, INT8 için kalibrasyon her cihaza özeldir; kalibrasyon için "üst düzey" bir GPU ödünç almak, çıkarım başka bir cihazda çalıştırıldığında kötü performansa neden olabilir.

  • batch : Çıkarım için kullanılacak maksimum yığın boyutudur. Çıkarım sırasında daha küçük yığınlar kullanılabilir, ancak çıkarım belirtilenden daha büyük yığınları kabul etmeyecektir.

Not

Küçük yığınlar kullanmak, INT8 kalibrasyonu sırasında yanlış ölçeklendirmeye yol açabilir. Bunun nedeni, sürecin gördüğü verilere göre ayar yapmasıdır. Küçük yığınlar değerlerin tam aralığını yakalayamayabilir ve bu da nihai kalibrasyonla ilgili sorunlara yol açabilir. Daha büyük bir yığın boyutu kullanmak, daha temsili kalibrasyon sonuçları sağlamaya yardımcı olur.

Experimentation by NVIDIA led them to recommend using at least 500 calibration images that are representative of the data for your model, with INT8 quantization calibration. This is a guideline and not a hard requirement, and you will need to experiment with what is required to perform well for your dataset. Since the calibration data is required for INT8 calibration with TensorRT, make certain to use the data argument when int8=True for TensorRT and use data="my_dataset.yaml", which will use the images from validation to calibrate with. When no value is passed for data with export to TensorRT with INT8 quantization, the default will be to use one of the "small" example datasets based on the model task instead of throwing an error.

Örnek
from ultralytics import YOLO

model = YOLO("yolo26n.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("yolo26n.engine", task="detect")

# Run inference
result = model.predict("https://ultralytics.com/images/bus.jpg")
  1. Dinamik eksenlerle dışa aktarır; bu, açıkça ayarlanmasa bile int8=True ile dışa aktarırken varsayılan olarak etkinleştirilecektir. Ek bilgi için dışa aktarma bağımsız değişkenlerine bak.
  2. Dışa aktarılan model ve INT8 kalibrasyonu için 8'lik maksimum yığın boyutu ayarlar.
  3. Dönüştürme işlemi için cihazın tamamını tahsis etmek yerine 4 GiB bellek ayırır.
  4. Kalibrasyon için COCO veri kümesini, özellikle doğrulama için kullanılan görüntüleri (toplam 5.000) kullanır.
Kalibrasyon Önbelleği

TensorRT, aynı verileri kullanarak gelecekteki model ağırlıklarının dışa aktarımını hızlandırmak için yeniden kullanılabilen bir kalibrasyon .cache dosyası oluşturacaktır, ancak veriler çok farklıysa veya batch değeri büyük ölçüde değiştirilirse bu durum kötü kalibrasyona neden olabilir. Bu durumlarda, mevcut .cache dosyası yeniden adlandırılmalı ve farklı bir dizine taşınmalı veya tamamen silinmelidir.

Link to this sectionYOLO'yu TensorRT INT8 ile kullanmanın avantajları#

  • Azaltılmış model boyutu: FP32'den INT8'e nicemleme, model boyutunu 4 kat azaltabilir (disk üzerinde veya bellekte), bu da daha hızlı indirme süreleri, daha düşük depolama gereksinimleri ve bir model dağıtılırken daha düşük bellek alanı kullanımı sağlar.

  • Daha düşük güç tüketimi: INT8 dışa aktarılan YOLO modelleri için düşük hassasiyetli işlemler, özellikle pille çalışan cihazlar için FP32 modellerine kıyasla daha az güç tüketebilir.

  • İyileştirilmiş çıkarım hızları: TensorRT, modeli hedef donanım için optimize eder ve bu da GPU'larda, gömülü cihazlarda ve hızlandırıcılarda daha hızlı çıkarım hızlarına yol açabilir.

Çıkarım Hızları Üzerine Not

TensorRT INT8'e aktarılan bir modelle yapılan ilk birkaç çıkarım çağrısının, normalden daha uzun ön işleme, çıkarım ve/veya son işleme sürelerine sahip olması beklenebilir. Bu durum, özellikle imgsz dışa aktarma sırasında belirtilenden farklı olduğunda (dışa aktarma imgsz TensorRT "optimal" profili olarak ayarlanır) çıkarım sırasında imgsz değiştirilirken de meydana gelebilir.

Link to this sectionYOLO'yu TensorRT INT8 ile kullanmanın dezavantajları#

  • Decreases in evaluation metrics: Using a lower precision will mean that mAP, Precision, Recall or any other metric used to evaluate model performance is likely to be somewhat worse. See the Performance results section to compare the differences in mAP50 and mAP50-95 when exporting with INT8 on small sample of various devices.

  • Artan geliştirme süreleri: Veri kümesi ve cihaz için INT8 kalibrasyonu için "optimal" ayarları bulmak önemli miktarda test gerektirebilir.

  • Donanım bağımlılığı: Kalibrasyon ve performans kazanımları yüksek oranda donanıma bağlı olabilir ve model ağırlıkları daha az taşınabilir durumdadır.

Link to this sectionUltralytics YOLO TensorRT Dışa Aktarım Performansı#

Link to this sectionNVIDIA A100#

Performans

Ubuntu 22.04.3 LTS, python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1 ile test edilmiştir

See Detection Docs for usage examples with these models trained on COCO, which include 80 pretrained classes.

Not

Inference times shown for mean, min (fastest), and max (slowest) for each test using pretrained weights yolov8n.engine

PrecisionDeğerlendirme testiortalama
(ms)
min | maks
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchboyut
(piksel)
FP32Tahmin Et (Predict)0.520.51 | 0.568640
FP32COCOval0.520.520.371640
FP16Tahmin Et (Predict)0.340.34 | 0.418640
FP16COCOval0.330.520.371640
INT8Tahmin Et (Predict)0.280.27 | 0.318640
INT8COCOval0.290.470.331640

Link to this sectionTüketici GPU'ları#

Tespit Performansı (COCO)

Windows 10.0.19045, python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6 ile test edildi

Not

Inference times shown for mean, min (fastest), and max (slowest) for each test using pretrained weights yolov8n.engine

PrecisionDeğerlendirme testiortalama
(ms)
min | maks
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchboyut
(piksel)
FP32Tahmin Et (Predict)1.060.75 | 1.888640
FP32COCOval1.370.520.371640
FP16Tahmin Et (Predict)0.620.75 | 1.138640
FP16COCOval0.850.520.371640
INT8Tahmin Et (Predict)0.520.38 | 1.008640
INT8COCOval0.740.470.331640

Link to this sectionGömülü Cihazlar#

Tespit Performansı (COCO)

JetPack 6.0 (L4T 36.3) Ubuntu 22.04.4 LTS, python 3.10.12, ultralytics==8.2.16, tensorrt==10.0.1 ile test edildi

Not

Inference times shown for mean, min (fastest), and max (slowest) for each test using pretrained weights yolov8n.engine

PrecisionDeğerlendirme testiortalama
(ms)
min | maks
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchboyut
(piksel)
FP32Tahmin Et (Predict)6.116.10 | 6.298640
FP32COCOval6.170.520.371640
FP16Tahmin Et (Predict)3.183.18 | 3.208640
FP16COCOval3.190.520.371640
INT8Tahmin Et (Predict)2.302.29 | 2.358640
INT8COCOval2.320.460.321640
Bilgi

Kurulum ve yapılandırma hakkında daha fazla bilgi edinmek için Ultralytics YOLO ile NVIDIA Jetson hızlı başlangıç kılavuzumuza göz at.

Bilgi

Kurulum ve yapılandırma hakkında daha fazla bilgi edinmek için Ultralytics YOLO ile NVIDIA DGX Spark hızlı başlangıç kılavuzumuza göz at.

Link to this sectionDeğerlendirme yöntemleri#

Bu modellerin nasıl dışa aktarıldığı ve test edildiğiyle ilgili bilgi için aşağıdaki bölümleri genişlet.

Dışa aktarma yapılandırmaları

Dışa aktarma yapılandırma argümanlarıyla ilgili ayrıntılar için dışa aktarma moduna göz at.

from ultralytics import YOLO

model = YOLO("yolo26n.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"
)
Tahmin döngüsü

Ek bilgi için tahmin moduna göz at.

import cv2

from ultralytics import YOLO

model = YOLO("yolo26n.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",
    )
Doğrulama yapılandırması

Doğrulama yapılandırma argümanları hakkında daha fazla bilgi edinmek için val moduna göz at.

from ultralytics import YOLO

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

Link to this sectionDışa Aktarılan YOLO26 TensorRT Modellerini Dağıtma#

Ultralytics YOLO26 modellerini başarıyla TensorRT formatına dışa aktardığına göre, artık onları dağıtmaya hazırsın. TensorRT modellerini çeşitli ortamlarda dağıtmakla ilgili derinlemesine talimatlar için aşağıdaki kaynaklara bir göz at:

Link to this sectionÖzet#

Bu kılavuzda, Ultralytics YOLO26 modellerini NVIDIA'nın TensorRT model formatına dönüştürmeye odaklandık. Bu dönüştürme adımı, YOLO26 modellerinin verimliliğini ve hızını artırmak, onları çeşitli dağıtım ortamları için daha etkili ve uygun hale getirmek adına çok önemlidir.

Kullanım detayları hakkında daha fazla bilgi için resmi TensorRT belgelerine bir göz at.

Ek Ultralytics YOLO26 entegrasyonlarını merak ediyorsan, entegrasyon kılavuzu sayfamız çok çeşitli bilgilendirici kaynaklar ve içgörüler sunar.

Link to this sectionSSS#

Link to this sectionYOLO26 modellerini nasıl TensorRT formatına dönüştürürüm?#

Ultralytics YOLO26 modellerini optimize edilmiş NVIDIA GPU çıkarımı için TensorRT formatına dönüştürmek üzere şu adımları izle:

  1. Gerekli paketi yükle:

    pip install ultralytics
  2. YOLO26 modelini dışa aktar:

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

Daha fazla ayrıntı için YOLO26 Kurulum kılavuzunu ve dışa aktarma belgelerini ziyaret et.

Link to this sectionYOLO26 modelleri için TensorRT kullanmanın avantajları nelerdir?#

YOLO26 modellerini optimize etmek için TensorRT kullanmak çeşitli avantajlar sunar:

  • Daha Hızlı Çıkarım Hızı: TensorRT, model katmanlarını optimize eder ve doğruluktan önemli ölçüde ödün vermeden çıkarımı hızlandırmak için hassasiyet kalibrasyonu (INT8 ve FP16) kullanır.
  • Bellek Verimliliği: TensorRT, tensör belleğini dinamik olarak yöneterek yükü azaltır ve GPU bellek kullanımını iyileştirir.
  • Katman Birleştirme (Layer Fusion): Birden çok katmanı tek işlemlerde birleştirerek hesaplama karmaşıklığını azaltır.
  • Çekirdek Otomatik Ayarlama (Kernel Auto-Tuning): Her model katmanı için optimize edilmiş GPU çekirdeklerini otomatik olarak seçerek maksimum performansı sağlar.

Daha fazla bilgi edinmek için NVIDIA'nın resmi TensorRT belgelerini ve kapsamlı TensorRT genel bakışımızı keşfet.

Link to this sectionYOLO26 modelleri için TensorRT ile INT8 nicemleme (quantization) kullanabilir miyim?#

Evet, YOLO26 modellerini TensorRT ile INT8 nicemleme kullanarak dışa aktarabilirsin. Bu süreç, eğitim sonrası nicemleme (PTQ) ve kalibrasyonu içerir:

  1. INT8 ile dışa aktar:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="engine", batch=8, workspace=4, int8=True, data="coco.yaml")
  2. Çıkarımı çalıştır:

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

Daha fazla ayrıntı için INT8 nicemleme ile TensorRT dışa aktarma bölümüne başvur.

Link to this sectionYOLO26 TensorRT modellerini NVIDIA Triton Inference Server üzerinde nasıl dağıtırım?#

YOLO26 TensorRT modellerini bir NVIDIA Triton Inference Server üzerinde dağıtmak için aşağıdaki kaynaklar kullanılabilir:

Bu kılavuzlar, YOLO26 modellerini çeşitli dağıtım ortamlarında verimli bir şekilde entegre etmene yardımcı olacaktır.

Link to this sectionTensorRT'ye aktarılan YOLO26 modellerinde gözlemlenen performans iyileştirmeleri nelerdir?#

TensorRT ile performans iyileştirmeleri, kullanılan donanıma bağlı olarak değişebilir. İşte bazı tipik kıyaslamalar:

  • NVIDIA A100:

    • FP32 Çıkarım: ~0.52 ms / görüntü
    • FP16 Çıkarım: ~0.34 ms / görüntü
    • INT8 Çıkarım: ~0.28 ms / görüntü
    • INT8 hassasiyeti ile mAP değerinde hafif bir düşüş olur ancak hızda önemli bir iyileşme sağlanır.
  • Tüketici GPU'ları (örneğin, RTX 3080):

    • FP32 Çıkarım: ~1.06 ms / görüntü
    • FP16 Çıkarım: ~0.62 ms / görüntü
    • INT8 Çıkarım: ~0.52 ms / görüntü

Farklı donanım yapılandırmaları için ayrıntılı performans kıyaslamaları, performans bölümünde bulunabilir.

TensorRT performansı hakkında daha kapsamlı içgörüler için Ultralytics belgelerine ve performans analizi raporlarımıza başvur.

Yorumlar