콘텐츠로 건너뛰기

YOLO11 빠른 배포를 위해 TorchScript 으로 모델 내보내기

임베디드 시스템, 웹 브라우저 또는 Python 지원이 제한된 플랫폼 등 다양한 환경에 컴퓨터 비전 모델을 배포하려면 유연하고 이식 가능한 솔루션이 필요합니다. TorchScript 은 이식성과 전체 Python 프레임워크를 사용할 수 없는 환경에서 모델을 실행하는 기능에 중점을 둡니다. 따라서 다양한 디바이스나 플랫폼에 컴퓨터 비전 기능을 배포해야 하는 시나리오에 이상적입니다.

Torchscript 으로 내보내서 Ultralytics YOLO11 모델을 직렬화하여 플랫폼 간 호환성을 높이고 배포를 간소화할 수 있습니다. 이 가이드에서는 YOLO11 모델을 TorchScript 형식으로 내보내서 더 다양한 애플리케이션에서 쉽게 사용할 수 있도록 하는 방법을 보여 드리겠습니다.

TorchScript 으로 내보내야 하는 이유는 무엇인가요?

Torchscript 개요

PyTorch 의 개발자가 개발한 TorchScript 은 다양한 플랫폼에서 PyTorch 모델을 최적화하고 배포할 수 있는 강력한 도구입니다. YOLO11 모델로 내보내기 TorchScript 로 내보내는 것은 연구에서 실제 애플리케이션으로 전환하는 데 매우 중요합니다. TorchScript PyTorch 프레임워크의 일부인 PyTorch 모델은 Python 을 지원하지 않는 환경에서도 모델을 사용할 수 있게 함으로써 이러한 전환을 보다 원활하게 해줍니다.

이 프로세스에는 추적과 스크립팅이라는 두 가지 기술이 포함됩니다. 추적은 모델 실행 중 작업을 기록하고, 스크립팅은 Python 의 하위 집합을 사용하여 모델을 정의할 수 있습니다. 이러한 기술을 통해 YOLO11 과 같은 모델은 일반적인 Python 환경 밖에서도 계속 작동할 수 있습니다.

TorchScript 스크립트 및 추적

TorchScript 연산자 융합 및 메모리 사용량 개선과 같은 기술을 통해 모델을 최적화하여 효율적인 실행을 보장할 수도 있습니다. TorchScript 으로 내보내는 또 다른 장점은 다양한 하드웨어 플랫폼에서 모델 실행을 가속화할 수 있다는 점입니다. 이는 C++ 환경, 임베디드 시스템에 통합하거나 웹 또는 모바일 애플리케이션에 배포할 수 있는 독립형, 프로덕션 준비 상태의 PyTorch 모델을 생성합니다.

TorchScript 모델의 주요 기능

TorchScript는 PyTorch 에코시스템의 핵심 부분으로, 딥러닝 모델을 최적화하고 배포하기 위한 강력한 기능을 제공합니다.

TorchScript 특징

다음은 TorchScript 을 개발자에게 유용한 도구로 만드는 주요 기능입니다:

  • 정적 그래프 실행: TorchScript 은 모델 계산의 정적 그래프 표현을 사용하며, PyTorch 의 동적 그래프 실행과는 다릅니다. 정적 그래프 실행에서는 계산 그래프가 실제 실행 전에 한 번 정의되고 컴파일되므로 추론 시 성능이 향상됩니다.

  • 모델 직렬화: TorchScript 를 사용하면 PyTorch 모델을 플랫폼에 독립적인 형식으로 직렬화할 수 있습니다. 직렬화된 모델은 원본 Python 코드 없이도 로드할 수 있으므로 다양한 런타임 환경에 배포할 수 있습니다.

  • JIT 컴파일: TorchScript 은 JIT(Just-In-Time) 컴파일을 사용하여 PyTorch 모델을 최적화된 중간 표현으로 변환합니다. JIT는 모델의 계산 그래프를 컴파일하여 대상 장치에서 효율적으로 실행할 수 있도록 합니다.

  • 언어 간 통합: TorchScript 을 사용하면 PyTorch 모델을 C++, Java, JavaScript와 같은 다른 언어로 내보낼 수 있습니다. 이렇게 하면 PyTorch 모델을 다른 언어로 작성된 기존 소프트웨어 시스템에 쉽게 통합할 수 있습니다.

  • 점진적 변환: TorchScript 에서는 점진적 변환 방식을 제공하여 PyTorch 모델의 일부를 TorchScript 로 점진적으로 변환할 수 있습니다. 이 유연성은 복잡한 모델을 다루거나 코드의 특정 부분을 최적화하려는 경우에 특히 유용합니다.

배포 옵션 TorchScript

YOLO11 모델을 TorchScript 형식으로 내보내는 코드를 살펴보기 전에 TorchScript 모델이 일반적으로 사용되는 위치를 이해해 보겠습니다.

TorchScript 는 다음과 같은 머신 러닝 모델을 위한 다양한 배포 옵션을 제공합니다:

  • C++ API: TorchScript 의 가장 일반적인 사용 사례는 최적화된 TorchScript 모델을 C++ 애플리케이션 내에서 직접 로드하고 실행할 수 있는 C++ API입니다. 이는 Python 이 적합하지 않거나 사용할 수 없는 프로덕션 환경에 이상적입니다. C++ API는 TorchScript 모델을 오버헤드가 적고 효율적으로 실행하여 성능 잠재력을 극대화합니다.

  • 모바일 배포: TorchScript 에서는 모델을 모바일 장치에 쉽게 배포할 수 있는 형식으로 변환하는 도구를 제공합니다. PyTorch 모바일은 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) 를 입력합니다.
optimize bool False 모바일 디바이스에 대한 최적화를 적용하여 모델 크기를 줄이고 성능을 개선할 수 있습니다.
nms bool False 정확하고 효율적인 검출 후처리에 필수적인 비최대 억제(NMS)를 추가합니다.
batch int 1 내보내기 모델 일괄 추론 크기 또는 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다. predict 모드로 전환합니다.

내보내기 프로세스에 대한 자세한 내용은 내보내기 관련 문서 페이지(Ultralytics )를 참조하세요.

내보낸 YOLO11 TorchScript 모델 배포

Ultralytics YOLO11 모델을 TorchScript 형식으로 성공적으로 내보낸 후에는 이제 배포할 수 있습니다. TorchScript 모델을 실행하기 위한 기본적이고 권장되는 첫 번째 단계는 이전 사용 코드 조각에 설명된 대로 YOLO("모델.torchscript") 방법을 활용하는 것입니다. 그러나 다양한 다른 설정에서 TorchScript 모델을 배포하는 방법에 대한 자세한 지침은 다음 리소스를 참조하세요:

  • 모바일 배포 살펴보기: 모바일 배포 PyTorch 모바일 문서에서는 모바일 디바이스에 모델을 배포하기 위한 포괄적인 지침을 제공하여 애플리케이션의 효율성과 응답성을 보장합니다.

  • 마스터 서버 측 배포: 확장 가능하고 효율적인 모델 제공을 위한 단계별 튜토리얼을 제공하는 TorchServe를 사용하여 서버 측에 모델을 배포하는 방법을 알아보세요.

  • C++ 배포 구현: TorchScript 모델을 C++로 로드하는 튜토리얼을 통해 TorchScript 모델을 C++ 애플리케이션에 통합하여 향상된 성능과 다양한 기능을 활용할 수 있습니다.

요약

이 가이드에서는 Ultralytics YOLO11 모델을 TorchScript 형식으로 내보내는 프로세스를 살펴봤습니다. 제공된 지침에 따라 YOLO11 모델을 성능에 맞게 최적화하고 다양한 플랫폼과 환경에 배포할 수 있는 유연성을 확보할 수 있습니다.

사용법에 대한 자세한 내용은 TorchScript 의 공식 문서를 참조하세요.

또한 Ultralytics YOLO11 통합에 대해 더 자세히 알고 싶다면 통합 가이드 페이지를 방문하세요. 유용한 리소스와 인사이트를 많이 찾을 수 있습니다.

자주 묻는 질문

Ultralytics YOLO11 모델 내보내기란 무엇인가요 TorchScript?

Ultralytics YOLO11 모델을 TorchScript 로 내보내면 유연한 크로스 플랫폼 배포가 가능합니다. TorchScript PyTorch 에코시스템의 일부인 모델을 직렬화하면 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 모바일 문서, TorchServe 문서C++ 배포 가이드를 참조하세요.

YOLO11 모델을 TorchScript 으로 내보내기 위한 설치 단계는 어떻게 되나요?

YOLO11 모델 내보내기에 필요한 패키지를 설치하려면 다음 명령을 사용합니다:

설치

# Install the required package for YOLO11
pip install ultralytics

자세한 지침은 Ultralytics 설치 가이드를 참조하세요. 설치 중에 문제가 발생하면 일반적인 문제 가이드를 참조하세요.

내보낸 TorchScript YOLO11 모델을 배포하려면 어떻게 해야 하나요?

YOLO11 모델을 TorchScript 형식으로 내보낸 후 다양한 플랫폼에 배포할 수 있습니다:

  • C++ API: 오버헤드가 적고 효율성이 높은 프로덕션 환경에 이상적입니다.
  • 모바일 배포: iOS 및 Android 애플리케이션의 경우 PyTorch 모바일을 사용하세요.
  • 클라우드 배포: 확장 가능한 서버 측 배포를 위해 TorchServe와 같은 서비스를 활용하세요.

이러한 설정에서 모델을 배포하기 위한 포괄적인 가이드라인을 살펴보고 TorchScript 의 기능을 최대한 활용하세요.

📅1 년 전 생성됨 ✏️ 1 일 전 업데이트됨

댓글