wang-xinyu/tensorrtx

Implementation of popular deep learning networks with TensorRT network definition API

해결하는 문제

TensorRTx는 ONNX나 UFF와 같은 표준 파서에 의존하지 않고, TensorRT 네트워크 정의 API를 사용하여 인기 있는 딥러닝 네트워크를 구현하는 방법을 제공합니다. 이 접근 방식은 자동 파서의 '블랙박스' 성격을 피하고, 개발자가 네트워크 구조와 최적화에 대한 완전한 제어를 가능하게 합니다.

작동 방식

이 프로젝트는 훈련된 모델에서 고성능 추론 엔진으로 이동하기 위한 특정 워크플로우를 따릅니다:

  1. 가중치 내보내기: PyTorch, MXNet, TensorFlow 등의 프레임워크에서 가중치를 추출하여 일반 텍스트 형식의 .wts 파일로 내보냅니다.
  2. 네트워크 정의: TensorRT의 복잡한 API를 사용하여 레이어와 구조를 정의하며, 네트워크를 처음부터 다시 구축합니다.
  3. 엔진 빌드: .wts 가중치를 정의된 네트워크에 로드하여 TensorRT 엔진을 구축합니다.
  4. 추론: 생성된 엔진을 로드하고 추론을 실행합니다.

대상 사용자

NVIDIA 하드웨어를 통해 TensorRT로 모델을 배포할 때, 네트워크를 자유롭게 수정하거나 중간 레이어 결과를 디버깅하거나 딥러닝 모델의 내부 구조를 학습하고 싶은 개발자 및 연구자에게 적합합니다.

주요 특징

  • 높은 유연성: 레이어를 쉽게 추가, 삭제, 교체할 수 있으며, 전처리 및 후처리를 네트워크 내부에 직접 통합할 수 있습니다.
  • 세부 디버깅 지원: 단계적 개발을 지원하여 중간 레이어 출력을 확인할 수 있습니다.
  • 풍부한 모델 자료실: YOLO 시리즈(v3부터 v13까지), ResNet, MobileNet, Vision Transformers(ViT), 얼굴 검출용 RetinaFace, 텍스트 검출용 DBNet 등 다양한 모델의 구현이 포함되어 있습니다.
  • 사용자 정의 워크플로우: CMake를 사용하여 개별 하위 프로젝트 또는 전체 세트를 빌드할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트