빠른 배포를 위한 YOLO11 모델의 TorchScript로 내보내기
임베디드 시스템, 웹 브라우저 또는 제한된 python 지원 플랫폼을 포함한 다양한 환경에서 컴퓨터 비전 모델을 배포하려면 유연하고 이식 가능한 솔루션이 필요합니다. TorchScript는 이식성과 전체 python 프레임워크를 사용할 수 없는 환경에서 모델을 실행할 수 있는 기능에 중점을 둡니다. 따라서 다양한 장치 또는 플랫폼에서 컴퓨터 비전 기능을 배포해야 하는 시나리오에 적합합니다.
Torchscript로 내보내기: 교차 플랫폼 호환성 및 간소화된 배포를 위해 Ultralytics YOLO11 모델을 직렬화합니다. 이 가이드에서는 YOLO11 모델을 TorchScript 형식으로 내보내는 방법을 보여주어 더 광범위한 애플리케이션에서 쉽게 사용할 수 있도록 합니다.
TorchScript로 내보내야 하는 이유는 무엇입니까?
PyTorch 개발자들이 개발한 TorchScript는 다양한 플랫폼에서 PyTorch 모델을 최적화하고 배포하는 데 유용한 강력한 도구입니다. YOLO11 모델을 TorchScript로 내보내는 것은 연구 단계를 넘어 실제 애플리케이션으로 전환하는 데 매우 중요합니다. PyTorch 프레임워크의 일부인 TorchScript는 Python을 지원하지 않는 환경에서 PyTorch 모델을 사용할 수 있도록 하여 이러한 전환을 더욱 원활하게 합니다.
이 프로세스는 추적 및 스크립팅이라는 두 가지 기술을 포함합니다. 추적은 모델 실행 중 작업을 기록하고 스크립팅을 사용하면 Python의 하위 집합을 사용하여 모델을 정의할 수 있습니다. 이러한 기술은 YOLO11과 같은 모델이 일반적인 Python 환경 외부에서도 제 기능을 발휘할 수 있도록 보장합니다.
TorchScript 모델은 연산자 융합 및 메모리 사용량 개선과 같은 기술을 통해 최적화되어 효율적인 실행을 보장할 수도 있습니다. TorchScript로 내보내는 또 다른 장점은 다양한 하드웨어 플랫폼에서 모델 실행을 가속화할 수 있다는 것입니다. C++ 환경, 임베디드 시스템에 통합하거나 웹 또는 모바일 애플리케이션에 배포할 수 있는 독립 실행형 프로덕션 지원 PyTorch 모델 표현을 생성합니다.
TorchScript 모델의 주요 기능
PyTorch 생태계의 핵심 부분인 TorchScript는 딥 러닝 모델을 최적화하고 배포하기 위한 강력한 기능을 제공합니다.
다음은 TorchScript를 개발자를 위한 가치 있는 도구로 만드는 주요 기능입니다.
-
정적 그래프 실행: TorchScript는 PyTorch의 동적 그래프 실행과는 다른 모델 계산의 정적 그래프 표현을 사용합니다. 정적 그래프 실행에서는 계산 그래프가 실제 실행 전에 한 번 정의되고 컴파일되므로 추론 중에 성능이 향상됩니다.
-
모델 직렬화: TorchScript를 사용하면 PyTorch 모델을 플랫폼 독립적인 형식으로 직렬화할 수 있습니다. 직렬화된 모델은 원래 python 코드가 없어도 로드할 수 있으므로 다양한 런타임 환경에서 배포할 수 있습니다.
-
JIT 컴파일: TorchScript는 Just-In-Time (JIT) 컴파일을 사용하여 PyTorch 모델을 최적화된 중간 표현으로 변환합니다. JIT는 모델의 계산 그래프를 컴파일하여 대상 장치에서 효율적인 실행을 가능하게 합니다.
-
교차 언어 통합: TorchScript를 사용하면 PyTorch 모델을 C++, Java, JavaScript와 같은 다른 언어로 내보낼 수 있습니다. 이를 통해 다양한 언어로 작성된 기존 소프트웨어 시스템에 PyTorch 모델을 더 쉽게 통합할 수 있습니다.
-
점진적 변환: TorchScript는 점진적인 변환 방식을 제공하여 PyTorch 모델의 일부를 TorchScript로 점진적으로 변환할 수 있습니다. 이러한 유연성은 복잡한 모델을 다루거나 코드의 특정 부분을 최적화하려는 경우에 특히 유용합니다.
TorchScript의 배포 옵션
YOLO11 모델을 TorchScript 형식으로 내보내는 코드에 대해 알아보기 전에 TorchScript 모델이 일반적으로 어디에 사용되는지 이해해 보겠습니다.
TorchScript는 다음과 같은 머신 러닝 모델을 위한 다양한 배포 옵션을 제공합니다.
-
C++ API: TorchScript의 가장 일반적인 사용 사례는 C++ API이며, 이를 통해 최적화된 TorchScript 모델을 C++ 애플리케이션 내에서 직접 로드하고 실행할 수 있습니다. 이는 python이 적합하지 않거나 사용할 수 없는 프로덕션 환경에 이상적입니다. C++ API는 TorchScript 모델의 낮은 오버헤드와 효율적인 실행을 제공하여 성능 잠재력을 극대화합니다.
-
모바일 배포: TorchScript는 모델을 모바일 장치에 쉽게 배포할 수 있는 형식으로 변환하는 도구를 제공합니다. PyTorch Mobile은 iOS 및 Android 앱 내에서 이러한 모델을 실행하기 위한 런타임을 제공합니다. 이를 통해 짧은 지연 시간, 오프라인 추론 기능을 통해 사용자 경험과 데이터 개인 정보 보호를 향상시킬 수 있습니다.
-
클라우드 배포: TorchScript 모델은 TorchServe와 같은 솔루션을 사용하여 클라우드 기반 서버에 배포할 수 있습니다. 모델 버전 관리, 배치 및 메트릭 모니터링과 같은 기능을 제공하여 프로덕션 환경에서 확장 가능한 배포를 지원합니다. TorchScript를 사용한 클라우드 배포를 통해 API 또는 기타 웹 서비스를 통해 모델에 접근할 수 있습니다.
TorchScript로 내보내기: YOLO11 모델 변환
YOLO11 모델을 TorchScript로 내보내면 다양한 위치에서 더 쉽게 사용할 수 있으며 더 빠르고 효율적으로 실행하는 데 도움이 됩니다. 이는 실제 애플리케이션에서 딥 러닝 모델을 보다 효과적으로 사용하려는 모든 사람에게 유용합니다.
설치
필수 패키지를 설치하려면 다음을 실행합니다.
설치
# Install the required package for YOLO11
pip install ultralytics
설치 프로세스와 관련된 자세한 지침 및 모범 사례는 Ultralytics 설치 가이드를 확인하십시오. YOLO11에 필요한 패키지를 설치하는 동안 어려움이 발생하면 일반적인 문제 가이드에서 해결 방법과 팁을 참조하십시오.
사용법
모든 Ultralytics YOLO11 모델은 기본적으로 내보내기를 지원하도록 설계되어 선호하는 배포 워크플로에 쉽게 통합할 수 있습니다. 지원되는 전체 내보내기 형식 및 구성 옵션 목록을 확인하여 애플리케이션에 가장 적합한 설정을 선택할 수 있습니다.
사용법
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'
# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'
인수 내보내기
인수 | 유형 | 기본값 | 설명 |
---|---|---|---|
format |
str |
'torchscript' |
다양한 배포 환경과의 호환성을 정의하는 내보낸 모델의 대상 형식입니다. |
imgsz |
int 또는 tuple |
640 |
모델 입력에 대한 원하는 이미지 크기입니다. 정사각형 이미지의 경우 정수이거나 튜플일 수 있습니다. (height, width) 특정 크기의 경우. |
dynamic |
bool |
False |
동적 입력 크기를 허용하여 다양한 이미지 크기를 처리하는 유연성을 향상시킵니다. |
optimize |
bool |
False |
모바일 장치에 대한 최적화를 적용하여 모델 크기를 줄이고 성능을 향상시킬 수 있습니다. |
nms |
bool |
False |
정확하고 효율적인 탐지 후 처리에 필수적인 NMS(Non-Maximum Suppression)를 추가합니다. |
batch |
int |
1 |
내보내기 모델 배치 추론 크기 또는 내보내기 모델이 동시에 처리할 이미지의 최대 수를 지정합니다. predict mode. |
device |
str |
None |
내보내기할 장치를 지정합니다: GPU (device=0 ), CPU (device=cpu ), Apple Silicon용 MPS (device=mps )입니다. |
내보내기 프로세스에 대한 자세한 내용은 내보내기에 대한 Ultralytics 문서 페이지를 참조하십시오.
내보낸 YOLO11 TorchScript 모델 배포
Ultralytics YOLO11 모델을 TorchScript 형식으로 성공적으로 내보낸 후 배포할 수 있습니다. TorchScript 모델을 실행하는 기본적이며 권장되는 첫 번째 단계는 이전 사용 코드 스니펫에 설명된 대로 YOLO("model.torchscript") 메서드를 활용하는 것입니다. 그러나 다양한 다른 설정에서 TorchScript 모델을 배포하는 방법에 대한 자세한 내용은 다음 리소스를 참조하십시오.
-
모바일 배포 살펴보기: PyTorch 모바일 문서는 모바일 장치에 모델을 배포하기 위한 포괄적인 지침을 제공하여 애플리케이션이 효율적이고 반응성이 뛰어나도록 보장합니다.
-
서버 측 배포 마스터하기: 확장 가능하고 효율적인 모델 제공을 위한 단계별 튜토리얼을 제공하는 TorchServe를 사용하여 모델을 서버 측에 배포하는 방법을 알아봅니다.
-
C++ 배포 구현: C++에서 TorchScript 모델 로딩에 대한 튜토리얼을 통해 TorchScript 모델을 C++ 애플리케이션에 통합하여 성능과 다양성을 향상시킵니다.
요약
이 가이드에서는 Ultralytics YOLO11 모델을 TorchScript 형식으로 내보내는 프로세스를 살펴보았습니다. 제공된 지침에 따라 YOLO11 모델의 성능을 최적화하고 다양한 플랫폼 및 환경에 배포할 수 있는 유연성을 얻을 수 있습니다.
사용법에 대한 자세한 내용은 TorchScript 공식 문서를 참조하십시오.
또한 다른 Ultralytics YOLO11 통합에 대해 자세히 알고 싶으시면 통합 가이드 페이지를 방문하십시오. 유용한 리소스와 통찰력을 많이 찾을 수 있습니다.
FAQ
TorchScript로의 Ultralytics YOLO11 모델 내보내기란 무엇입니까?
Ultralytics YOLO11 모델을 TorchScript로 내보내면 유연한 교차 플랫폼 배포가 가능합니다. PyTorch 생태계의 일부인 TorchScript는 Python 지원이 부족한 환경에서 실행할 수 있는 모델 직렬화를 용이하게 합니다. 따라서 임베디드 시스템, C++ 환경, 모바일 애플리케이션, 심지어 웹 브라우저에 모델을 배포하는 데 적합합니다. TorchScript로 내보내면 다양한 플랫폼에서 YOLO11 모델의 효율적인 성능과 더 넓은 적용 가능성이 가능합니다.
Ultralytics를 사용하여 YOLO11 모델을 TorchScript로 내보내려면 어떻게 해야 합니까?
YOLO11 모델을 TorchScript로 내보내려면 다음 예제 코드를 사용할 수 있습니다.
사용법
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'
# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'
내보내기 프로세스에 대한 자세한 내용은 내보내기에 대한 Ultralytics 문서를 참조하십시오.
YOLO11 모델을 배포하는 데 TorchScript를 사용해야 하는 이유는 무엇인가요?
YOLO11 모델을 배포하기 위해 TorchScript를 사용하면 다음과 같은 여러 가지 이점이 있습니다.
- 이식성: 내보낸 모델은 C++ 애플리케이션, 임베디드 시스템 또는 모바일 장치와 같이 python이 필요 없는 환경에서 실행할 수 있습니다.
- 최적화: TorchScript는 정적 그래프 실행 및 JIT(Just-In-Time) 컴파일을 지원하여 모델 성능을 최적화할 수 있습니다.
- 교차 언어 통합: TorchScript 모델은 다른 프로그래밍 언어에 통합되어 유연성과 확장성을 향상시킬 수 있습니다.
- 직렬화: 모델을 직렬화하여 플랫폼에 관계없이 로딩 및 추론할 수 있습니다.
배포에 대한 자세한 내용은 PyTorch Mobile Documentation, TorchServe Documentation 및 C++ Deployment Guide를 참조하십시오.
YOLO11 모델을 TorchScript로 내보내기 위한 설치 단계는 무엇인가요?
YOLO11 모델 내보내기에 필요한 패키지를 설치하려면 다음 명령을 사용하십시오.
설치
# Install the required package for YOLO11
pip install ultralytics
자세한 내용은 Ultralytics 설치 가이드를 참조하세요. 설치 중에 문제가 발생하면 일반적인 문제 해결 가이드를 참조하세요.
내보낸 TorchScript YOLO11 모델을 어떻게 배포합니까?
YOLO11 모델을 TorchScript 형식으로 내보낸 후 다양한 플랫폼에 배포할 수 있습니다:
- C++ API: 오버헤드가 낮고 효율성이 높은 프로덕션 환경에 적합합니다.
- 모바일 배포: iOS 및 Android 애플리케이션에 PyTorch Mobile을 사용하십시오.
- 클라우드 배포: 확장 가능한 서버 측 배포를 위해 TorchServe와 같은 서비스를 활용하십시오.
TorchScript의 기능을 최대한 활용하기 위해 이러한 환경에서 모델을 배포하기 위한 포괄적인 지침을 살펴보십시오.