Link to this sectionYOLO26 Modelleri için TensorRT Dışa Aktarımı#
Bilgisayarlı görü modellerini yüksek performanslı ortamlarda dağıtmak, hızı ve verimliliği en üst düzeye çıkaran bir biçim gerektirebilir. Bu, özellikle modelini NVIDIA GPU'lar üzerinde dağıtıyorsan geçerlidir.
TensorRT dışa aktarım biçimini kullanarak, Ultralytics YOLO26 modellerini NVIDIA donanımı üzerinde hızlı ve verimli çıkarım için geliştirebilirsin. Bu kılavuz, dönüşüm süreci için izlemesi 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 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 biçimine dönüştürmek, geliştiricilerin NVIDIA GPU'larının potansiyelini tam olarak gerçekleştirmelerini sağlar.
TensorRT, TensorFlow, PyTorch ve ONNX dahil olmak üzere çeşitli model biçimleriyle uyumluluğuyla 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.
Link to this sectionTensorRT Modellerinin Temel Özellikleri#
TensorRT modelleri, yüksek hızlı derin öğrenme çıkarımındaki verimliliklerine ve etkinliklerine katkıda bulunan bir dizi temel özellik sunar:
-
Hassasiyet Kalibrasyonu: TensorRT, hassasiyet kalibrasyonunu destekleyerek modellerin belirli doğruluk gereksinimlerine göre ince ayar yapılmasına olanak tanır. Buna, çıkarım hızını artırırken kabul edilebilir doğruluk seviyelerini koruyabilen INT8 ve FP16 gibi düşük hassasiyetli biçimler için destek de 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.
-
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 ayarlama 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 biçimine aktarmak için kodlara 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ığı, performans optimizasyonu ve esnekliği farklı şekilde 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 izin verir.
-
NVIDIA Triton Inference Server: Çeşitli çerçevelerden modelleri destekleyen bir seçenek. Ö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 Dışa Aktarma#
YOLO26 modellerini TensorRT biçimine 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:
# Install the required package for YOLO26
pip install ultralyticsKurulum süreci ile ilgili ayrıntılı talimatlar ve en iyi uygulamalar için YOLO26 Kurulum kılavuzumuza göz at. YOLO26 için gerekli paketleri kurarken herhangi bir zorlukla karşılaşırsan, çözümler ve ipuçları için Yaygın Sorunlar kılavuzumuza danış.
Link to this sectionKullanım#
Before diving into the usage instructions, be sure to check out the range of YOLO26 models offered by Ultralytics. This will help you choose the most appropriate model for your project requirements.
TensorRT biçimi Dışa Aktarma, Tahmin ve Doğrulama modlarını destekler. Çıkarım ve doğrulama bir NVIDIA GPU gerektirir. Modelini dışa aktar, ardından çıkarım yapmak veya doğruluğunu doğrulamak için dışa aktarılan modeli yükle.
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'from ultralytics import YOLO
# Load the exported TensorRT model
model = YOLO("yolo26n.engine")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")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üman | Tür | Varsayılan | Açıklama |
|---|---|---|---|
format | str | 'engine' | Dışa aktarılan model için hedef format; çeşitli dağıtım ortamlarıyla uyumluluğu tanımlar. |
imgsz | int veya tuple | 640 | Model girdisi için istenen görüntü boyutu. Kare görüntüler için bir tam sayı veya belirli boyutlar için bir (height, width) demeti olabilir. |
half | bool | False | FP16 (yarı hassasiyetli) nicelemeyi etkinleştirir, model boyutunu küçültür ve desteklenen donanımlarda çıkarımı potansiyel olarak hızlandırır. |
int8 | bool | False | INT8 nicelemeyi etkinleştirir; modeli daha da sıkıştırarak minimum accuracy kaybı ile özellikle uç cihazlarda çıkarımı hızlandırır. |
dynamic | bool | False | Dinamik giriş boyutlarına izin vererek farklı görüntü boyutlarını işleme konusunda esnekliği artırır. |
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ı dengeler; 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 Non-Maximum Suppression (NMS) ekler. |
batch | int | 1 | Dışa aktarılan modelin toplu çıkarım boyutunu veya predict modunda aynı anda işleyeceği maksimum görüntü sayısını belirtir. |
data | str | 'coco8.yaml' | Niceleme için gerekli olan dataset yapılandırma dosyasına giden yol (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ümesi üzerinde kalibrasyona izin verir, deneyler için veya kaynaklar sınırlı olduğunda yararlıdır. INT8 etkinleştirildiğinde 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 dışa aktarırken CUDA destekli bir GPU kullandığından emin ol.
Dışa aktarma süreci hakkında daha fazla detay için Ultralytics dışa aktarma belgeleri sayfasına göz at.
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) yürütür. TensorRT, PTQ için kalibrasyon kullanır; bu, YOLO modeli temsilci giriş verileri üzerinde çıkarım işlerken 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, kalibrasyon süreciyle çıkarılan ilişkili bir ölçeği vardır.
Örtük olarak nicemlenmiş ağları işlerken TensorRT, katman yürütme süresini optimize etmek için fırsatçı bir şekilde INT8 kullanır. Bir katman INT8'de daha hızlı çalışıyorsa ve veri girişleri ile çıkışlarında atanmış nicemleme ölçeklerine sahipse, o katmana INT8 hassasiyetine sahip bir çekirdek atanır, aksi takdirde TensorRT, o katman için hangi yürütme süresi daha hızlıysa ona göre FP32 veya FP16 hassasiyetini seçer.
Kalibrasyon sonuçları cihazlar arasında değişebileceğinden, INT8 hassasiyeti ile dışa aktarma için TensorRT model ağırlıklarını dağıtım için kullanacak aynı cihazın kullanıldığından emin olmak kritiktir.
Link to this sectionINT8 Dışa Aktarımını Yapılandırma#
Bir Ultralytics YOLO modeli için dışa aktarma 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 ayrıntıyı TensorRT Geliştirici Kılavuzunda okuyabilirsin. Ultralytics testleri, "MINMAX_CALIBRATION" seçeneğinin GPU dışa aktarımları için en iyi seçim olduğunu buldu 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.-
workspacedeğerini kalibrasyon ihtiyaçlarına ve kaynak kullanılabilirliğine göre ayarla. Daha büyük birworkspacekalibrasyon süresini artırabilse de, TensorRT'nin daha geniş bir optimizasyon taktikleri yelpazesini keşfetmesine olanak tanır ve potansiyel olarak model performansını ve doğruluğunu artırır. Buna karşılık, daha küçük birworkspacekalibrasyon süresini azaltabilir ancak optimizasyon stratejilerini sınırlayarak nicemlenmiş modelin kalitesini etkileyebilir. -
Varsayılan,
workspace=Nonedeğeridir; bu, TensorRT'nin belleği otomatik olarak 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_STATEduring export if the value forworkspaceis larger than the memory available to the device, which means the value forworkspaceshould be lowered or set toNone. -
workspacemaksimum değere ayarlıysa 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 kalibrasyonu 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 düşük performansla sonuçlanabilir.
-
-
batch: Çıkarım için kullanılacak maksimum toplu iş boyutu. Çıkarım sırasında daha küçük toplu işler kullanılabilir, ancak çıkarım belirtilenden daha büyük toplu işleri kabul etmeyecektir.
Küçük toplu işlerin kullanılması, INT8 kalibrasyonu sırasında hatalı ölçeklendirmeye yol açabilir. Bunun nedeni, sürecin gördüğü verilere göre ayarlanmasıdır. Küçük toplu işler değerlerin tam aralığını yakalayamayabilir ve bu da nihai kalibrasyonla ilgili sorunlara yol açabilir. Daha büyük bir toplu iş boyutu kullanmak, daha temsilci 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 aktarımlar, açıkça ayarlanmadığında bile
int8=Trueile dışa aktarı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 8'lik maksimum toplu iş boyutu ayarlar.
- Dönüşüm süreci için cihazın tamamını 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 çok farklıysa veya batch değeri büyük ölçüde değiştirilirse bu durum kötü kalibrasyonla sonuçlanabilir. Bu gibi 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 kata kadar 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 kullanımı sağlar.
-
Daha düşük güç tüketimi: INT8 ile dışa aktarılan YOLO modelleri için azaltılmış hassasiyetli işlemler, özellikle pille çalışan cihazlar için FP32 modellere 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'lar, gömülü cihazlar ve hızlandırıcılar üzerinde daha hızlı çıkarım hızlarına yol açabilir.
Çıkarım Hızları Hakkında Not
TensorRT INT8'e dışa 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, çıkarım sırasında imgsz değiştirildiğinde de olabilir; özellikle imgsz, dışa aktarma sırasında belirtilenle aynı olmadığında (dışa aktarma imgsz, TensorRT "optimal" profili olarak ayarlanır).
Link to this sectionYOLO'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 INT8 kalibrasyonu için "optimal" ayarları bulmak, önemli miktarda test gerektirebilir.
-
Donanım bağımlılığı: Kalibrasyon ve performans kazanımları büyük ölçüde donanıma bağımlı olabilir ve model ağırlıkları daha az taşınabilirdir.
Link to this sectionUltralytics YOLO TensorRT Dışa Aktarma Performansı#
Link to this sectionNVIDIA 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
| Hassasiyet | 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 |
Link to this sectionTüketici Sınıfı GPU'lar#
Windows 10.0.19045, python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6 ile test edildi
Inference times shown for mean, min (fastest), and max (slowest) for each test using pretrained weights yolov8n.engine
| Hassasiyet | 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 |
Link to this sectionGö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 edildi
Inference times shown for mean, min (fastest), and max (slowest) for each test using pretrained weights yolov8n.engine
| Hassasiyet | 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.
Link to this sectionDeğerlendirme yöntemleri#
Bu modellerin nasıl dışa aktarıldığı ve test edildiği hakkında 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 modu bölümüne 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",
)Link to this sectionDışa Aktarılan YOLO26 TensorRT Modellerini Dağıtma#
Ultralytics YOLO26 modellerini başarıyla TensorRT formatına aktardığına göre, artık onları dağıtmaya hazırsın. TensorRT modellerini çeşitli ortamlarda dağıtmakla ilgili ayrıntılı talimatlar için aşağıdaki kaynaklara göz at:
-
Ultralytics'i Triton Sunucusu ile Dağıt: NVIDIA'nın Triton Inference (eski adıyla TensorRT Inference) Sunucusunu özellikle Ultralytics YOLO modelleri ile kullanmana yönelik rehberimiz.
-
Derin Sinir Ağlarını NVIDIA TensorRT ile Dağıtma: Bu makale, derin sinir ağlarını GPU tabanlı dağıtım platformlarında verimli bir şekilde dağıtmak için NVIDIA TensorRT'nin nasıl kullanılacağını açıklar.
-
NVIDIA Tabanlı PC'ler için Uçtan Uca Yapay Zeka: NVIDIA TensorRT Dağıtımı: Bu blog yazısı, yapay zeka modellerini NVIDIA tabanlı PC'lerde optimize etmek ve 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.
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ı daha etkili hale getirmek ve çeşitli dağıtım ortamları için uygun kılmak adına çok önemlidir.
Kullanım detayları hakkında daha fazla bilgi için resmi TensorRT belgelerine göz at.
Diğer Ultralytics YOLO26 entegrasyonlarını merak ediyorsan, entegrasyon rehberi sayfamız çok çeşitli bilgilendirici kaynak ve içgörü sunar.
Link to this sectionSSS#
Link to this sectionYOLO26 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 üzere şu adımları izle:
-
Gerekli paketi kur:
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 detay için YOLO26 Kurulum kılavuzunu ve dışa aktarma belgelerini ziyaret et.
Link to this sectionYOLO26 modelleri için TensorRT kullanmanın faydaları 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 fazla 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 ayrıntılı TensorRT genel bakışımıza göz at.
Link to this sectionYOLO26 modelleri için TensorRT ile INT8 nicemleme kullanabilir miyim?#
Evet, YOLO26 modellerini TensorRT kullanarak INT8 nicemleme ile dışa aktarabilirsin. Bu süreç, 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.
Link to this sectionYOLO26 TensorRT modellerini bir 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 kaynaklardan yararlanabilirsin:
- Triton Sunucusu ile Ultralytics YOLO26 Dağıt: Triton Inference Server'ı kurmak ve kullanmak için adım adım rehber.
- Derin Sinir Ağlarını NVIDIA TensorRT ile Dağıtma: Ayrıntılı dağıtım seçenekleri ve yapılandırmaları için NVIDIA'nın TensorRT ile derin öğrenme modellerini dağıtma kılavuzu.
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 göre değişiklik gösterebilir. İşte bazı tipik karşılaştırmalı test sonuçları:
-
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 küçük 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 karşılaştırmalarına performans bölümünden ulaşabilirsin.
TensorRT performansı hakkında daha kapsamlı içgörüler için Ultralytics belgelerine ve performans analiz raporlarımıza başvur.