YOLO26 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, özellikle modelini NVIDIA GPU'larında devreye alı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.
TensorRT
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 füzyonu, 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 gerçekleştirmelerine olanak tanır.
TensorRT, TensorFlow, PyTorch ve ONNX dahil olmak üzere çeşitli model formatlarıyla uyumluluğu ile bilinir ve geliştiricilere farklı çerçevelerden 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.
TensorRT 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 gereksinimleri için 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 desteği dahildir.
-
Katman Füzyonu: TensorRT optimizasyon süreci, bir sinir ağının birden fazla katmanının tek bir işlemde birleştirildiği katman füzyonunu 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.
-
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 ayarlaması uygular. Bu uyarlanabilir yaklaşım, modelin GPU'nun hesaplama gücünden tam olarak yararlanmasını sağlar.
TensorRT'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 çeşitli dağıtım seçenekleri 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'a entegre ederek 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 bir karışımına sahip modeller için kullanışlıdır.
-
Bağımsız TensorRT Çalışma Zamanı API'si: 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 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.
YOLO26 Modellerini TensorRT'ye Aktarma
YOLO26 modellerini TensorRT formatına dönüştürerek yürütme verimliliğini artırabilir ve performansı optimize edebilirsin.
Kurulum
Gerekli paketi yüklemek için şunu çalıştır:
# Install the required package for YOLO26
pip install ultralyticsKurulum süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için YOLO26 Kurulum rehberimize göz at. YOLO26 için gerekli paketleri yüklerken herhangi bir zorlukla karşılaşırsan, çözümler ve ipuçları için Yaygın Sorunlar rehberimize başvur.
Kullanım
Kullanım talimatlarına dalmadan önce, Ultralytics tarafından sunulan YOLO26 modellerine göz atmayı unutma. Bu, proje gereksinimlerin için en uygun modeli seçmene yardımcı olacaktır.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TensorRT format
model.export(format="engine") # creates 'yolo26n.engine'
# Load the exported TensorRT model
tensorrt_model = YOLO("yolo26n.engine")
# Run inference
results = tensorrt_model("https://ultralytics.com/images/bus.jpg")Dışa Aktarma Argümanları
| Argüman | Tür | Varsayılan | Açıklama |
|---|---|---|---|
format | str | 'engine' | Çeşitli dağıtım ortamlarıyla uyumluluğu tanımlayan, dışa aktarılan model için hedef format. |
imgsz | int veya tuple | 640 | Desired image size for the model input. Can be an integer for square images or a tuple (height, width) for specific dimensions. |
half | bool | False | FP16 (yarım hassasiyet) nicelemeyi etkinleştirerek model boyutunu küçültür ve desteklenen donanımlarda çıkarım hızını potansiyel olarak artırır. |
int8 | bool | False | INT8 nicelemeyi etkinleştirerek modeli daha da sıkıştırır ve minimum doğruluk kaybıyla, öncelikle uç cihazlar için çıkarımı hızlandırır. |
dynamic | bool | False | Değişken görüntü boyutlarını işlemede esnekliği artırarak dinamik giriş boyutlarına izin verir. |
simplify | bool | True | Model grafiğini onnxslim ile basitleştirir, potansiyel olarak performansı ve uyumluluğu artırır. |
workspace | float veya None | None | TensorRT optimizasyonları için GiB cinsinden maksimum çalışma alanı boyutunu ayarlar, bellek kullanımı ve performans arasında denge kurar; TensorRT tarafından cihaz maksimumuna kadar otomatik tahsis için None kullan. |
nms | bool | False | Doğru ve verimli tespit sonrası işleme için gerekli olan Maksimum Olmayan Bastırma (NMS) özelliğini ekler. |
batch | int | 1 | Modelin dışa aktarılan 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. |
data | str | 'coco8.yaml' | Niceleme (quantization) için gerekli olan dataset yapılandırma dosyasının yolu (varsayılan: coco8.yaml). |
fraction | float | 1.0 | INT8 niceleme kalibrasyonu için kullanılacak veri kümesi oranını belirtir. Tam veri kümesinin bir alt kümesinde kalibrasyon yapmaya olanak tanır; bu, deneyler veya kaynaklar sınırlı olduğunda kullanışlıdır. INT8 etkinken belirtilmezse, veri kümesinin tamamı kullanılır. |
device | str | None | Dışa aktarma için cihazı belirtir: GPU (device=0), NVIDIA Jetson için DLA (device=dla:0 veya device=dla:1). |
Lütfen TensorRT'ye aktarırken CUDA destekli bir GPU kullandığından emin ol.
Dışa aktarma süreci hakkında daha fazla ayrıntı için dışa aktarma ile ilgili Ultralytics dokümantasyon sayfasını ziyaret et.
INT8 Kuantizasyonu ile TensorRT Dışa Aktarımı
Ultralytics YOLO modellerini INT8 hassasiyeti ile TensorRT kullanarak dışa aktarmak, eğitim sonrası kuantizasyon (PTQ) yürütür. TensorRT, PTQ için kalibrasyon kullanır; bu, YOLO modeli temsilci giriş verileri üzerinde çıkarım yaparken her aktivasyon tensöründeki aktivasyon 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. Kuantizasyon adayı olan her aktivasyon tensörünün, kalibrasyon süreciyle çıkarılan ilişkili bir ölçeği vardır.
Örtük olarak kuantize edilmiş 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şleri ile çıkışlarında atanmış kuantizasyon ölçekleri varsa, o katmana INT8 hassasiyetli 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 hassasiyetini seçer.
Kalibrasyon sonuçları cihazlar arasında farklılık gösterebileceğinden, dağıtım için TensorRT model ağırlıklarını kullanacak cihazın INT8 hassasiyetiyle dışa aktarma için de kullanıldığından emin olmak kritiktir.
INT8 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'lar için çalışmalıdır. Kullanılan kalibrasyon algoritması "MINMAX_CALIBRATION"'dır ve mevcut seçenekler hakkında daha fazla bilgiyi TensorRT Geliştirici Kılavuzu'nda bulabilirsin. Ultralytics testleri "MINMAX_CALIBRATION"'ın en iyi seçenek olduğunu buldu ve dışa aktarmalar bu algoritmayı kullanacak şekilde sabitlendi.
-
workspace: Model ağırlıklarını dönüştürürken cihaz belleği tahsisinin boyutunu (GiB cinsinden) kontrol eder.-
workspacedeğerini kalibrasyon ihtiyaçlarına ve kaynak durumuna göre ayarla. Daha büyük birworkspacekalibrasyon süresini artırabilse de, TensorRT'nin daha geniş bir optimizasyon taktiği yelpazesini keşfetmesine olanak tanır ve potansiyel olarak model performansını ve doğruluğunu artırır. Tersine, daha küçük birworkspacekalibrasyon süresini azaltabilir ancak optimizasyon stratejilerini sınırlayarak kuantize edilmiş modelin kalitesini etkileyebilir. -
Varsayılan değer
workspace=None'dır, bu TensorRT'nin otomatik olarak bellek tahsis etmesine olanak tanır; manuel yapılandırma sırasında, kalibrasyon çökerse (uyarı vermeden çıkarsa) bu değerin artırılması gerekebilir. -
TensorRT will report
UNSUPPORTED_STATEduring export if the value forworkspaceis larger than the memory available to the device, which means the value forworkspaceshould be lowered or set toNone. -
Eğer
workspacemaksimum değere ayarlanmışsa ve kalibrasyon başarısız olursa/çökerse, otomatik tahsis içinNonekullanmayı veya bellek gereksinimlerini azaltmak içinimgszvebatchdeğerlerini düşürmeyi düşün. -
Unutma, INT8 için kalibrasyon her cihaza özeldir, kalibrasyon için "üst düzey" bir GPU ödünç almak, başka bir cihazda çıkarım yapıldığında düşük performansa neden olabilir.
-
-
batch: Çıkarım için kullanılacak maksimum yığın boyutu. Çıkarım sırasında daha küçük yığınlar kullanılabilir, ancak çıkarım belirtilenden daha büyük yığınları kabul etmeyecektir.
Küçük yığınlar kullanmak, INT8 kalibrasyonu sırasında yanlış ölçeklemeye yol açabilir. Bunun nedeni, sürecin gördüğü verilere göre kendini ayarlamasıdır. Küçük yığınlar değerlerin tüm 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.
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")- Dinamik eksenlerle dışa aktarmalar; bu, açıkça ayarlanmadığında bile
int8=Trueile dışa aktarılırken varsayılan olarak etkinleştirilecektir. Ek bilgi için dışa aktarma bağımsız değişkenlerine bak. - Dışa aktarılan model ve INT8 kalibrasyonu için maksimum 8 yığın boyutu ayarlar.
- Dönüştürme işlemi için tüm cihazı tahsis etmek yerine 4 GiB bellek tahsis eder.
- 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 büyük ölçüde farklıysa veya batch değeri önemli ö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.
YOLO'yu TensorRT INT8 ile kullanmanın avantajları
-
Daha küçük model boyutu: FP32'den INT8'e kuantizasyon, model boyutunu 4 katına kadar azaltabilir (disk üzerinde veya bellekte); bu da daha hızlı indirme süreleri, daha düşük depolama gereksinimleri ve model dağıtırken daha küçük bellek ayak izi 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 ederek GPU'larda, gömülü cihazlarda ve hızlandırıcılarda potansiyel olarak daha hızlı çıkarım hızlarına yol açar.
Çıkarım Hızları Hakkında 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, çıkarım sırasında imgsz değiştirildiğinde de ortaya çıkabilir, özellikle de imgsz dışa aktarma sırasında belirtilenle aynı olmadığında (dışa aktarma imgsz değeri TensorRT "optimal" profili olarak ayarlanır).
YOLO'yu TensorRT INT8 ile kullanmanın dezavantajları
-
Decreases in evaluation metrics: Using a lower precision will mean that
mAP,Precision,Recallor any other metric used to evaluate model performance is likely to be somewhat worse. See the Performance results section to compare the differences inmAP50andmAP50-95when exporting with INT8 on small sample of various devices. -
Artan geliştirme süreleri: Veri kümesi ve cihaz için "optimal" INT8 kalibrasyon ayarlarını bulmak önemli miktarda test gerektirebilir.
-
Donanım bağımlılığı: Kalibrasyon ve performans kazanımları yüksek derecede donanıma bağlı olabilir ve model ağırlıkları daha az taşınabilirdir.
Ultralytics YOLO TensorRT Dışa Aktarım Performansı
NVIDIA A100
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.
Inference times shown for mean, min (fastest), and max (slowest) for each test using pretrained weights yolov8n.engine
| Precision | Değerlendirme testi | ortalama (ms) | min | max (ms) | mAPval 50(B) | mAPval 50-95(B) | batch | boyut (piksel) |
|---|---|---|---|---|---|---|---|
| FP32 | Tahmin | 0.52 | 0.51 | 0.56 | 8 | 640 | ||
| FP32 | COCOval | 0.52 | 0.52 | 0.37 | 1 | 640 | |
| FP16 | Tahmin | 0.34 | 0.34 | 0.41 | 8 | 640 | ||
| FP16 | COCOval | 0.33 | 0.52 | 0.37 | 1 | 640 | |
| INT8 | Tahmin | 0.28 | 0.27 | 0.31 | 8 | 640 | ||
| INT8 | COCOval | 0.29 | 0.47 | 0.33 | 1 | 640 |
Tüketici Sınıfı GPU'lar
Windows 10.0.19045, python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6 ile test edilmiştir
Inference times shown for mean, min (fastest), and max (slowest) for each test using pretrained weights yolov8n.engine
| Precision | Değerlendirme testi | ortalama (ms) | min | max (ms) | mAPval 50(B) | mAPval 50-95(B) | batch | boyut (piksel) |
|---|---|---|---|---|---|---|---|
| FP32 | Tahmin | 1.06 | 0.75 | 1.88 | 8 | 640 | ||
| FP32 | COCOval | 1.37 | 0.52 | 0.37 | 1 | 640 | |
| FP16 | Tahmin | 0.62 | 0.75 | 1.13 | 8 | 640 | ||
| FP16 | COCOval | 0.85 | 0.52 | 0.37 | 1 | 640 | |
| INT8 | Tahmin | 0.52 | 0.38 | 1.00 | 8 | 640 | ||
| INT8 | COCOval | 0.74 | 0.47 | 0.33 | 1 | 640 |
Gömülü Cihazlar
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 edilmiştir
Inference times shown for mean, min (fastest), and max (slowest) for each test using pretrained weights yolov8n.engine
| Precision | Değerlendirme testi | ortalama (ms) | min | max (ms) | mAPval 50(B) | mAPval 50-95(B) | batch | boyut (piksel) |
|---|---|---|---|---|---|---|---|
| FP32 | Tahmin | 6.11 | 6.10 | 6.29 | 8 | 640 | ||
| FP32 | COCOval | 6.17 | 0.52 | 0.37 | 1 | 640 | |
| FP16 | Tahmin | 3.18 | 3.18 | 3.20 | 8 | 640 | ||
| FP16 | COCOval | 3.19 | 0.52 | 0.37 | 1 | 640 | |
| INT8 | Tahmin | 2.30 | 2.29 | 2.35 | 8 | 640 | ||
| INT8 | COCOval | 2.32 | 0.46 | 0.32 | 1 | 640 |
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.
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.
Değerlendirme yöntemleri
Bu modellerin nasıl dışa aktarıldığı ve test edildiğiyle ilgili bilgi almak için aşağıdaki bölümleri genişlet.
Dışa aktarma yapılandırmaları
Dışa aktarma yapılandırma argümanları hakkında ayrıntılar için dışa aktarma moduna bak.
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 bak.
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 bak.
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",
)Dışa Aktarılan YOLO26 TensorRT Modellerini Dağıtma
Ultralytics YOLO26 modellerini TensorRT formatına başarıyla dışa aktardıktan sonra, artık onları dağıtmaya hazırsın. TensorRT modellerini çeşitli ortamlarda dağıtmak için kapsamlı talimatlar almak adına aşağıdaki kaynaklara bir göz at:
-
Ultralytics'i Triton Sunucusu ile Dağıtma: Ultralytics YOLO modelleriyle özel olarak kullanmak için NVIDIA'nın Triton Inference (eski adıyla TensorRT Inference) Sunucusunun nasıl kullanılacağına dair kılavuzumuz.
-
Derin Sinir Ağlarını NVIDIA TensorRT ile Dağıtma: Bu makale, GPU tabanlı dağıtım platformlarında derin sinir ağlarını verimli bir şekilde dağıtmak için NVIDIA TensorRT'nin nasıl kullanılacağını açıklar.
-
NVIDIA Tabanlı Bilgisayarlar için Uçtan Uca Yapay Zeka: NVIDIA TensorRT Dağıtımı: Bu blog yazısı, yapay zeka modellerini optimize etmek ve NVIDIA tabanlı bilgisayarlarda dağıtmak için NVIDIA TensorRT kullanımını açıklar.
-
NVIDIA TensorRT için GitHub Deposu:: Bu, NVIDIA TensorRT için kaynak kodunu ve belgeleri içeren resmi GitHub deposudur.
Ö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ı daha etkili ve çeşitli dağıtım ortamları için uygun hale getirmek açısından çok önemlidir.
Kullanım ayrıntıları hakkında daha fazla bilgi için TensorRT resmi belgelerine 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.
SSS
YOLO26 modellerini TensorRT formatına nasıl dönüştürürüm?
Ultralytics YOLO26 modellerini optimize edilmiş NVIDIA GPU çıkarımı için TensorRT formatına dönüştürmek için şu adımları izle:
-
Gerekli paketi yükle:
pip install ultralytics -
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.
YOLO26 modelleri için TensorRT kullanmanın faydaları nelerdir?
YOLO26 modellerini optimize etmek için TensorRT kullanmak birçok avantaj 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ı garanti eder.
Daha fazla bilgi edinmek için NVIDIA'nın resmi TensorRT belgelerini ve kapsamlı TensorRT genel bakışımıza göz at.
YOLO26 modelleri için TensorRT ile INT8 nicemleme kullanabilir miyim?
Evet, YOLO26 modellerini INT8 nicemleme ile TensorRT kullanarak dışa aktarabilirsin. Bu işlem, eğitim sonrası nicemleme (PTQ) ve kalibrasyonu içerir:
-
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") -
Çı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 bak.
YOLO26 TensorRT modellerini NVIDIA Triton Inference Sunucusunda nasıl dağıtırım?
YOLO26 TensorRT modellerini bir NVIDIA Triton Inference Sunucusunda dağıtma işlemi aşağıdaki kaynaklar kullanılarak gerçekleştirilebilir:
- Ultralytics YOLO26'ı Triton Server ile Dağıt: Triton Inference Server kurulumu ve kullanımı hakkında adım adım rehber.
- NVIDIA Triton Inference Server Dokümantasyonu: Detaylı dağıtım seçenekleri ve yapılandırmalar için resmi NVIDIA dokümantasyonu.
Bu rehberler, YOLO26 modellerini çeşitli dağıtım ortamlarında verimli bir şekilde entegre etmene yardımcı olacaktır.
TensorRT'ye dışa aktarılan YOLO26 modelleriyle gözlemlenen performans iyileştirmeleri nelerdir?
TensorRT ile performans iyileştirmeleri kullanılan donanıma göre değişiklik gösterebilir. İşte bazı tipik kıyaslamalar:
-
NVIDIA A100:
- FP32 Çıkarım: ~0.52 ms / görsel
- FP16 Çıkarım: ~0.34 ms / görsel
- INT8 Çıkarım: ~0.28 ms / görsel
- INT8 hassasiyetinde mAP'de küçük bir düşüş görülür ancak hızda önemli bir iyileşme sağlanır.
-
Tüketici Sınıfı GPU'lar (örneğin RTX 3080):
- FP32 Çıkarım: ~1.06 ms / görsel
- FP16 Çıkarım: ~0.62 ms / görsel
- INT8 Çıkarım: ~0.52 ms / görsel
Farklı donanım yapılandırmaları için detaylı performans kıyaslamaları performans bölümünde bulunabilir.
TensorRT performansı hakkında daha kapsamlı bilgiler için Ultralytics dokümantasyonuna ve performans analizi raporlarımıza başvurabilirsin.