Link to this sectionYOLO26 모델을 위한 TensorRT 내보내기#
고성능 환경에서 컴퓨터 비전 모델을 배포하려면 속도와 효율성을 극대화하는 형식이 필요할 수 있습니다. 특히 NVIDIA GPU에 모델을 배포할 때는 더욱 그렇습니다.
TensorRT 내보내기 형식을 사용하면 Ultralytics YOLO26 모델을 NVIDIA 하드웨어에서 빠르고 효율적으로 추론할 수 있도록 향상시킬 수 있습니다. 이 가이드에서는 변환 과정을 쉽게 따라 할 수 있는 단계를 제공하며, 딥러닝 프로젝트에서 NVIDIA의 고급 기술을 최대한 활용하도록 돕습니다.
Link to this sectionTensorRT#
NVIDIA에서 개발한 TensorRT는 고속 딥러닝 추론을 위해 설계된 고급 소프트웨어 개발 키트(SDK)입니다. 객체 탐지와 같은 실시간 애플리케이션에 매우 적합합니다.
이 툴킷은 NVIDIA GPU를 위해 딥러닝 모델을 최적화하여 더 빠르고 효율적인 운영을 가능하게 합니다. TensorRT 모델은 레이어 융합, 정밀도 보정(INT8 및 FP16), 동적 텐서 메모리 관리, 커널 자동 튜닝과 같은 기술을 포함하는 TensorRT 최적화를 거칩니다. 딥러닝 모델을 TensorRT 형식으로 변환하면 개발자는 NVIDIA GPU의 잠재력을 완전히 발휘할 수 있습니다.
TensorRT는 TensorFlow, PyTorch, ONNX 등 다양한 모델 형식과의 호환성으로 잘 알려져 있으며, 개발자에게 다양한 프레임워크의 모델을 통합하고 최적화할 수 있는 유연한 솔루션을 제공합니다. 이러한 범용성은 다양한 하드웨어 및 소프트웨어 환경 전반에서 효율적인 모델 배포를 가능하게 합니다.
Link to this sectionTensorRT 모델의 주요 기능#
TensorRT 모델은 고속 딥러닝 추론에서 효율성과 효과에 기여하는 다양한 주요 기능을 제공합니다:
-
정밀도 보정(Precision Calibration): TensorRT는 정밀도 보정을 지원하여 특정 정확도 요구 사항에 맞게 모델을 미세 조정할 수 있습니다. 여기에는 INT8 및 FP16과 같이 낮은 정밀도 형식에 대한 지원이 포함되며, 이는 허용 가능한 정확도 수준을 유지하면서 추론 속도를 더욱 높일 수 있습니다.
-
레이어 융합(Layer Fusion): TensorRT 최적화 프로세스에는 신경망의 여러 레이어를 단일 작업으로 결합하는 레이어 융합이 포함됩니다. 이는 메모리 액세스와 계산을 최소화하여 계산 오버헤드를 줄이고 추론 속도를 개선합니다.
-
동적 텐서 메모리 관리(Dynamic Tensor Memory Management): TensorRT는 추론 중에 텐서 메모리 사용량을 효율적으로 관리하여 메모리 오버헤드를 줄이고 메모리 할당을 최적화합니다. 이는 결과적으로 GPU 메모리 활용 효율을 높입니다.
-
자동 커널 튜닝(Automatic Kernel Tuning): TensorRT는 자동 커널 튜닝을 적용하여 모델의 각 레이어에 가장 최적화된 GPU 커널을 선택합니다. 이러한 적응형 접근 방식은 모델이 GPU의 계산 능력을 최대한 활용하도록 보장합니다.
Link to this sectionTensorRT의 배포 옵션#
YOLO26 모델을 TensorRT 형식으로 내보내는 코드를 살펴보기 전에, TensorRT 모델이 일반적으로 어디에 사용되는지 이해해 보겠습니다.
TensorRT는 여러 배포 옵션을 제공하며, 각 옵션은 통합 용이성, 성능 최적화 및 유연성 간의 균형을 다르게 조정합니다:
- TensorFlow 내 배포: 이 방법은 TensorRT를 TensorFlow에 통합하여 최적화된 모델이 익숙한 TensorFlow 환경에서 실행되도록 합니다. TF-TRT가 지원되는 레이어와 지원되지 않는 레이어의 혼합을 효율적으로 처리할 수 있으므로, 이러한 모델에 유용합니다.
-
독립형 TensorRT 런타임 API: 성능이 중요한 애플리케이션에 이상적인 세밀한 제어 기능을 제공합니다. 더 복잡하지만 지원되지 않는 연산자에 대한 사용자 정의 구현을 허용합니다.
-
NVIDIA Triton Inference Server: 다양한 프레임워크의 모델을 지원하는 옵션입니다. 특히 클라우드나 엣지 추론에 적합하며, 동시 모델 실행 및 모델 분석과 같은 기능을 제공합니다.
Link to this sectionYOLO26 모델을 TensorRT로 내보내기#
YOLO26 모델을 TensorRT 형식으로 변환하여 실행 효율성을 개선하고 성능을 최적화할 수 있습니다.
Link to this section설치#
필수 패키지를 설치하려면 다음 명령어를 실행하십시오:
# Install the required package for YOLO26
pip install ultralytics설치 과정과 관련된 자세한 지침 및 모범 사례는 YOLO26 설치 가이드를 확인하십시오. YOLO26용 필수 패키지를 설치하는 동안 어려움이 발생하면 공통 문제 가이드에서 해결책과 팁을 확인하십시오.
Link to this section사용법#
사용 지침을 살펴보기 전에, Ultralytics에서 제공하는 다양한 YOLO26 모델을 확인하십시오. 이는 프로젝트 요구 사항에 가장 적합한 모델을 선택하는 데 도움이 될 것입니다.
TensorRT 형식은 내보내기(Export), 예측(Predict), 검증(Validate) 모드를 지원합니다. 추론과 검증에는 NVIDIA GPU가 필요합니다. 모델을 내보낸 후, 내보낸 모델을 로드하여 추론을 실행하거나 정확도를 검증하십시오.
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 section내보내기 인수#
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
format | str | 'engine' | 내보낸 모델의 대상 형식으로, 다양한 배포 환경과의 호환성을 정의합니다. |
imgsz | int 또는 tuple | 640 | 모델 입력에 필요한 이미지 크기입니다. 정사각형 이미지의 경우 정수를 사용하거나, 특정 치수의 경우 튜플 (height, width)을 사용할 수 있습니다. |
half | bool | False | FP16(반정밀도) 양자화를 활성화하여 모델 크기를 줄이고 지원되는 하드웨어에서 추론 속도를 잠재적으로 향상시킵니다. |
int8 | bool | False | INT8 양자화를 활성화하여 모델을 추가로 압축하고 정확도 손실을 최소화하면서 추론 속도를 높입니다. 주로 에지 디바이스에 사용됩니다. |
dynamic | bool | False | 동적 입력 크기를 허용하여 다양한 이미지 크기 처리 시 유연성을 높입니다. |
simplify | bool | True | onnxslim으로 모델 그래프를 단순화하여 잠재적으로 성능과 호환성을 향상시킵니다. |
workspace | float 또는 None | None | TensorRT 최적화를 위한 최대 작업 공간(workspace) 크기를 GiB 단위로 설정하여 메모리 사용량과 성능 간의 균형을 맞춥니다. 장치 최대값까지 TensorRT가 자동 할당하도록 하려면 None을 사용하십시오. |
nms | bool | False | 정확하고 효율적인 탐지 후처리에 필수적인 NMS(Non-Maximum Suppression)를 추가합니다. |
batch | int | 1 | 내보낸 모델의 추론 배치 크기나 predict 모드에서 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다. |
data | str | 'coco8.yaml' | 양자화에 필수적인 데이터셋 구성 파일 경로(기본값: coco8.yaml)입니다. |
fraction | float | 1.0 | INT8 양자화 보정에 사용할 데이터셋의 비율을 지정합니다. 전체 데이터셋의 일부만 사용하여 보정할 수 있어 실험 시나 리소스가 제한된 경우에 유용합니다. INT8이 활성화된 상태에서 지정하지 않으면 전체 데이터셋이 사용됩니다. |
device | str | None | 내보낼 장치를 지정합니다: GPU(device=0), NVIDIA Jetson용 DLA(device=dla:0 또는 device=dla:1). |
TensorRT로 내보낼 때는 반드시 CUDA를 지원하는 GPU를 사용하십시오.
내보내기 프로세스에 대한 자세한 내용은 내보내기에 관한 Ultralytics 문서 페이지를 방문하십시오.
Link to this sectionINT8 양자화와 함께 TensorRT 내보내기#
INT8 정밀도와 함께 TensorRT를 사용하여 Ultralytics YOLO 모델을 내보내면 훈련 후 양자화(PTQ)가 실행됩니다. TensorRT는 PTQ를 위해 보정(calibration)을 사용하며, 이는 YOLO 모델이 대표 입력 데이터에 대해 추론을 처리할 때 각 활성화 텐서 내의 활성화 분포를 측정한 다음, 해당 분포를 사용하여 각 텐서의 배율 값을 추정합니다. 양자화 후보인 각 활성화 텐서에는 보정 프로세스를 통해 도출된 관련 배율이 있습니다.
암묵적으로 양자화된 네트워크를 처리할 때 TensorRT는 기회주의적으로 INT8을 사용하여 레이어 실행 시간을 최적화합니다. 레이어가 INT8에서 더 빠르게 실행되고 데이터 입력 및 출력에 양자화 배율이 할당된 경우, 해당 레이어에 INT8 정밀도를 가진 커널이 할당됩니다. 그렇지 않으면 TensorRT는 레이어의 실행 시간이 더 빠른 결과를 내는 쪽을 기반으로 FP32 또는 FP16 정밀도의 커널을 선택합니다.
보정 결과는 장치마다 다를 수 있으므로, TensorRT 모델 가중치를 배포에 사용할 동일한 장치에서 INT8 정밀도로 내보내기를 수행하는 것이 매우 중요합니다.
Link to this sectionINT8 내보내기 구성#
Ultralytics YOLO 모델에 내보내기(export)를 사용할 때 제공되는 인수는 내보낸 모델의 성능에 큰 영향을 미칩니다. 또한 가용한 장치 리소스에 따라 선택해야 하지만, 기본 인수는 대부분의 Ampere(이상) NVIDIA 외장 GPU에서 작동해야 합니다. GPU 내보내기에 사용되는 보정 알고리즘은 "MINMAX_CALIBRATION"이며, NVIDIA Jetson의 DLA 내보내기는 "ENTROPY_CALIBRATION_2"를 사용합니다. TensorRT 개발자 가이드에서 사용 가능한 옵션에 대한 자세한 내용을 읽을 수 있습니다. Ultralytics의 테스트 결과 "MINMAX_CALIBRATION"이 GPU 내보내기에 가장 적합한 선택임이 확인되었으며, 이 알고리즘은 내보내기 장치에 따라 자동으로 선택됩니다.
-
workspace: 모델 가중치를 변환하는 동안 장치 메모리 할당 크기(GiB 단위)를 제어합니다.-
보정 요구 사항과 리소스 가용성에 따라
workspace값을 조정하십시오.workspace가 클수록 보정 시간이 늘어날 수 있지만, TensorRT가 더 넓은 범위의 최적화 전략을 탐색할 수 있게 하여 모델 성능과 정확도를 잠재적으로 향상시킵니다. 반대로workspace가 작으면 보정 시간은 줄어들 수 있지만 최적화 전략이 제한되어 양자화된 모델의 품질에 영향을 줄 수 있습니다. -
기본값은
workspace=None이며, 이는 TensorRT가 메모리를 자동으로 할당하도록 합니다. 수동으로 구성할 때 보정이 충돌(경고 없이 종료됨)하면 이 값을 늘려야 할 수도 있습니다. -
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. -
workspace가 최대값으로 설정되어 있는데도 보정이 실패하거나 충돌하면None을 사용하여 자동 할당을 시도하거나, 메모리 요구 사항을 줄이기 위해imgsz및batch값을 줄이십시오. -
기억하십시오, INT8 보정은 각 장치에 특화되어 있습니다. 보정을 위해 "고성능" GPU를 빌려 사용하는 것은 다른 장치에서 추론을 실행할 때 성능 저하를 초래할 수 있습니다.
-
-
batch: 추론에 사용될 최대 배치 크기입니다. 추론 중에는 더 작은 배치를 사용할 수 있지만, 지정된 것보다 큰 배치는 추론에서 허용되지 않습니다.
작은 배치를 사용하면 INT8 보정 중에 부정확한 배율 조정이 발생할 수 있습니다. 이는 프로세스가 데이터에 따라 조정되기 때문입니다. 작은 배치는 전체 값 범위를 포착하지 못할 수 있으며, 이는 최종 보정 문제로 이어집니다. 더 큰 배치 크기를 사용하면 보다 대표성 있는 보정 결과를 보장하는 데 도움이 됩니다.
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")보정 캐시
TensorRT는 동일한 데이터를 사용하여 향후 모델 가중치를 내보내는 속도를 높이기 위해 재사용할 수 있는 보정 .cache를 생성합니다. 그러나 데이터가 크게 다르거나 batch 값이 크게 변경되면 보정이 제대로 이루어지지 않을 수 있습니다. 이러한 상황에서는 기존 .cache의 이름을 변경하여 다른 디렉토리로 이동하거나 완전히 삭제해야 합니다.
Link to this sectionYOLO와 TensorRT INT8 사용의 장점#
-
모델 크기 감소: FP32에서 INT8로 양자화하면 모델 크기를 4배(디스크 또는 메모리상)까지 줄일 수 있어, 모델 배포 시 다운로드 시간이 빨라지고 저장 공간 요구 사항이 낮아지며 메모리 사용량이 감소합니다.
-
전력 소비 감소: INT8로 내보낸 YOLO 모델은 FP32 모델에 비해 전력 소비가 적은 저정밀도 연산을 수행할 수 있으며, 이는 배터리 기반 장치에 특히 유용합니다.
-
추론 속도 향상: TensorRT는 대상 하드웨어에 맞게 모델을 최적화하여 GPU, 임베디드 장치, 가속기에서 더 빠른 추론 속도를 구현할 수 있습니다.
추론 속도에 대한 참고 사항
TensorRT INT8로 내보낸 모델의 초기 몇 번의 추론 호출은 전처리, 추론 및/또는 후처리 시간이 평소보다 길어질 수 있습니다. 이는 추론 중에 imgsz를 변경할 때도 발생할 수 있으며, 특히 imgsz가 내보내기 중에 지정된 것과 같지 않을 때(내보내기 imgsz는 TensorRT "최적" 프로필로 설정됨) 더 그렇습니다.
Link to this sectionYOLO와 TensorRT INT8 사용의 단점#
-
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. -
개발 시간 증가: 데이터셋 및 장치에 대한 INT8 보정의 "최적" 설정을 찾는 데 상당한 테스트 시간이 소요될 수 있습니다.
-
하드웨어 의존성: 보정 및 성능 향상은 하드웨어에 매우 의존적일 수 있으며, 모델 가중치의 이식성이 떨어집니다.
Link to this sectionUltralytics YOLO TensorRT 내보내기 성능#
Link to this sectionNVIDIA A100#
Ubuntu 22.04.3 LTS, python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1로 테스트함
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
| 정밀도 | 평가 테스트 | 평균 (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 |
Link to this section소비자용 GPU#
Windows 10.0.19045, python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6 환경에서 테스트되었습니다.
Inference times shown for mean, min (fastest), and max (slowest) for each test using pretrained weights 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 |
Link to this section임베디드 장치#
JetPack 6.0 (L4T 36.3) Ubuntu 22.04.4 LTS, python 3.10.12, ultralytics==8.2.16, tensorrt==10.0.1 환경에서 테스트되었습니다.
Inference times shown for mean, min (fastest), and max (slowest) for each test using pretrained weights 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 Jetson과 Ultralytics YOLO에 대한 퀵스타트 가이드를 참조하십시오.
설정 및 구성에 대해 자세히 알아보려면 NVIDIA DGX Spark와 Ultralytics YOLO에 대한 퀵스타트 가이드를 참조하십시오.
Link to this section평가 방법#
이 모델들이 어떻게 내보내지고 테스트되었는지에 대한 정보를 보려면 아래 섹션을 펼치십시오.
내보내기 구성
내보내기 구성 인수에 관한 자세한 내용은 내보내기 모드를 참조하십시오.
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"
)예측 루프
추가 정보는 예측 모드를 참조하십시오.
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",
)검증 설정
검증 설정 인자에 대해 자세히 알아보려면 val 모드를 참조하십시오.
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 section내보낸 YOLO26 TensorRT 모델 배포하기#
Ultralytics YOLO26 모델을 TensorRT 형식으로 성공적으로 내보냈다면, 이제 배포할 준비가 되었습니다. 다양한 환경에서 TensorRT 모델을 배포하는 방법에 대한 자세한 지침은 다음 리소스를 확인하십시오.
-
Triton 서버를 사용한 Ultralytics 배포: Ultralytics YOLO 모델에 특화된 NVIDIA의 Triton Inference(이전의 TensorRT Inference) 서버 사용 방법에 대한 가이드입니다.
-
NVIDIA TensorRT를 사용한 심층 신경망 배포: 이 문서는 NVIDIA TensorRT를 사용하여 GPU 기반 배포 플랫폼에서 심층 신경망을 효율적으로 배포하는 방법을 설명합니다.
-
NVIDIA 기반 PC를 위한 엔드투엔드 AI: NVIDIA TensorRT 배포: 이 블로그 게시물은 NVIDIA 기반 PC에서 AI 모델을 최적화하고 배포하기 위한 NVIDIA TensorRT 사용법을 설명합니다.
-
NVIDIA TensorRT용 GitHub 리포지토리:: NVIDIA TensorRT의 소스 코드와 문서가 포함된 공식 GitHub 리포지토리입니다.
Link to this section요약#
이 가이드에서는 Ultralytics YOLO26 모델을 NVIDIA의 TensorRT 모델 형식으로 변환하는 데 중점을 두었습니다. 이 변환 단계는 YOLO26 모델의 효율성과 속도를 개선하여 다양한 배포 환경에서 더욱 효과적이고 적합하게 만드는 데 필수적입니다.
사용 세부 정보에 대한 자세한 내용은 TensorRT 공식 문서를 참조하십시오.
추가적인 Ultralytics YOLO26 통합에 관심이 있으시다면, 당사의 통합 가이드 페이지에서 광범위한 정보와 통찰력을 제공하는 리소스를 확인해 보십시오.
Link to this sectionFAQ#
Link to this sectionYOLO26 모델을 TensorRT 형식으로 어떻게 변환합니까?#
최적화된 NVIDIA GPU 추론을 위해 Ultralytics YOLO26 모델을 TensorRT 형식으로 변환하려면 다음 단계를 따르십시오.
-
필수 패키지 설치:
pip install ultralytics -
YOLO26 모델 내보내기:
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")
자세한 내용은 YOLO26 설치 가이드 및 내보내기 문서를 방문하십시오.
Link to this sectionYOLO26 모델에 TensorRT를 사용할 때의 이점은 무엇입니까?#
TensorRT를 사용하여 YOLO26 모델을 최적화하면 다음과 같은 여러 이점이 있습니다.
- 더 빠른 추론 속도: TensorRT는 모델 레이어를 최적화하고 정밀도 보정(INT8 및 FP16)을 사용하여 정확도를 크게 희생하지 않으면서 추론 속도를 높입니다.
- 메모리 효율성: TensorRT는 텐서 메모리를 동적으로 관리하여 오버헤드를 줄이고 GPU 메모리 활용도를 향상합니다.
- 레이어 퓨전(Layer Fusion): 여러 레이어를 단일 작업으로 결합하여 계산 복잡성을 줄입니다.
- 커널 자동 튜닝: 각 모델 레이어에 대해 최적화된 GPU 커널을 자동으로 선택하여 최대 성능을 보장합니다.
더 자세히 알아보려면 NVIDIA의 공식 TensorRT 문서와 당사의 심층 TensorRT 개요를 살펴보십시오.
Link to this sectionYOLO26 모델에 TensorRT와 함께 INT8 양자화를 사용할 수 있습니까?#
네, INT8 양자화를 사용하여 TensorRT로 YOLO26 모델을 내보낼 수 있습니다. 이 과정에는 학습 후 양자화(PTQ)와 보정이 포함됩니다.
-
INT8로 내보내기:
from ultralytics import YOLO model = YOLO("yolo26n.pt") model.export(format="engine", batch=8, workspace=4, int8=True, data="coco.yaml") -
추론 실행:
from ultralytics import YOLO model = YOLO("yolo26n.engine", task="detect") result = model.predict("https://ultralytics.com/images/bus.jpg")
자세한 내용은 INT8 양자화를 사용한 TensorRT 내보내기 섹션을 참조하십시오.
Link to this sectionNVIDIA Triton 추론 서버에서 YOLO26 TensorRT 모델을 어떻게 배포합니까?#
NVIDIA Triton 추론 서버에서 YOLO26 TensorRT 모델을 배포하는 것은 다음 리소스를 사용하여 수행할 수 있습니다.
- Triton 서버로 Ultralytics YOLO26 배포: Triton 추론 서버를 설정하고 사용하는 방법에 대한 단계별 가이드입니다.
- NVIDIA TensorRT를 사용한 심층 신경망 배포: 상세한 배포 옵션 및 구성을 위해 TensorRT로 심층 학습 모델을 배포하는 방법에 대한 NVIDIA 가이드입니다.
이 가이드들은 귀하가 다양한 배포 환경에서 YOLO26 모델을 효율적으로 통합하는 데 도움을 줄 것입니다.
Link to this sectionTensorRT로 내보낸 YOLO26 모델에서 관찰되는 성능 개선은 무엇입니까?#
TensorRT를 사용한 성능 개선은 사용된 하드웨어에 따라 다를 수 있습니다. 다음은 몇 가지 일반적인 벤치마크입니다.
-
NVIDIA A100:
- FP32 추론: ~0.52 ms / 이미지
- FP16 추론: ~0.34 ms / 이미지
- INT8 추론: ~0.28 ms / 이미지
- INT8 정밀도에서는 mAP가 약간 감소하지만 속도가 크게 향상됩니다.
-
소비자용 GPU (예: RTX 3080):
- FP32 추론: ~1.06 ms / 이미지
- FP16 추론: ~0.62 ms / 이미지
- INT8 추론: ~0.52 ms / 이미지
다양한 하드웨어 구성에 대한 상세 성능 벤치마크는 성능 섹션에서 확인할 수 있습니다.
TensorRT 성능에 대한 더 포괄적인 통찰력을 얻으려면 Ultralytics 문서와 당사의 성능 분석 보고서를 참조하십시오.