1. window에서 YOLO model -> tensorRT 세팅하기
from ultralytics import YOLO
import torch
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(torch.cuda.is_available())
# 모델 로드
model = YOLO("./trained_yolov8/best.pt")
model.to(device)
# PyTorch to TensorRT
model.export(format='engine', device=device, half=True)
변환할 모델을 load한 뒤, export함수를 통해 engine 포맷으로 변환 시켜주면 된다.
이 때 주의할 점은 cuda를 사용할 수 있는 상태여야 하며, tensorRT 변환을 위한 사전 작업이 필요함
nvidia-smi
위 명령어를 cmd에 입력
gpu 정보를 비롯해서 cuda 버전을 알 수 있음
위 링크에 들어가서 릴리즈 노트를 샥샥 뒤져보면 해당하는 OS와 CUDA 버전에 따라 다운로드 파일이 다름
내 cuda 버전은 12.0이라서 아래 파일 다운받음
압축 풀어준 뒤에 pc에 깔려있는 python 버전 확인하고 python 버전에 맞는 whl 파일 네개를 아래와 같이 설치하면 된다
!pip install C:/TensorRT-8.6.1.6/python/tensorrt_dispatch-8.6.1-cp39-none-win_amd64.whl
!pip install C:/TensorRT-8.6.1.6/uff/uff-0.6.9-py2.py3-none-any.whl
!pip install C:/TensorRT-8.6.1.6/graphsurgeon/graphsurgeon-0.4.6-py2.py3-none-any.whl
!pip install C:/TensorRT-8.6.1.6/onnx_graphsurgeon/onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl
그런데 이렇게 해도 tensorrt가 no module named를 뱉는다…
문제 해결시도 1
torch torchaudio torchvision 모두 cuda 버전이여야 할 수도 있겠다는 생각...
확인해본 결과, 셋 중 torchaudio만 cuda 버전이 깔려있는 것으로 확인했다
셋 모두 uninstall 해준 뒤, 공식 문서에서 다시 명령어 찾아서 설치함 (cuda 버전, 운영체제 등 본인 환경에 맞는 명령어 찾아야함)
Start Locally
Start Locally
pytorch.org
pip3 install torch torchvision torchaudio --index-url <https://download.pytorch.org/whl/cu121>
시도 후에도 비슷한 문제가 계속 되었다.
요건 문제가 아녓던걸루,,,ㅎ
문제 해결시도 2
stackoverflow에 나랑 똑같은 오류를 겪는 사람이 있어서 확인해봤는데 위 명령어 시도해보라고 했음
nvidia-pyindex는 잘 깔리는데 nvidia-tensorrt가 암만해도 안깔림
공식 문서 뒤져보다가 torch-tensorRT라는 문서를 찾았음…
Installation — Torch-TensorRT v2.5.0.dev0+33d2c36 documentation
Installation — Torch-TensorRT v2.5.0.dev0+4ccf0f7 documentation
Shortcuts
pytorch.org
python -m pip install torch torch-tensorrt tensorrt
이 명령어로 쌈뽕하게 잘 깔았다
해결 완!
영어라 잘 안읽혀도 공식 문서를 잘 읽어야 한다는 교훈을 얻었다.