YOLO26에서 TF SavedModel 형식으로 내보내는 방법 알아보기#
머신 러닝 모델을 배포하는 일은 어려울 수 있습니다. 하지만 효율적이고 유연한 모델 포맷을 사용하면 작업을 훨씬 수월하게 처리할 수 있습니다. TF SavedModel은 TensorFlow에서 머신 러닝 모델을 일관된 방식으로 로드하기 위해 사용하는 오픈소스 머신 러닝 프레임워크입니다. 마치 TensorFlow 모델을 위한 여행 가방과 같아서, 다양한 기기와 시스템에서 모델을 쉽게 운반하고 사용할 수 있도록 해줍니다.
Ultralytics YOLO26 모델에서 TF SavedModel로 내보내는 방법을 배우면 다양한 플랫폼과 환경에서 모델을 손쉽게 배포할 수 있습니다. 이 가이드에서는 모델을 TF SavedModel 포맷으로 변환하는 과정을 살펴보고, 다양한 기기에서 모델 추론을 실행하는 절차를 간소화하는 방법을 알아봅니다.
TF SavedModel로 내보내야 하는 이유는 무엇인가요?#
TensorFlow SavedModel 형식은 아래와 같이 Google이 개발한 TensorFlow 생태계의 일부입니다. 이는 TensorFlow 모델을 원활하게 저장하고 직렬화하도록 설계되었습니다. 모델의 아키텍처, 가중치, 심지어 컴파일 정보와 같은 모델의 완전한 세부 정보를 캡슐화합니다. 이를 통해 다양한 환경에서 공유, 배포 및 지속적인 학습을 간단하게 수행할 수 있습니다.
TF SavedModel의 핵심 장점은 호환성입니다. 이 포맷은 TensorFlow Serving, LiteRT(구 TensorFlow Lite), 그리고 TensorFlow.js와 원활하게 작동합니다. 이러한 호환성 덕분에 웹 및 모바일 애플리케이션을 비롯한 다양한 플랫폼에서 모델을 더욱 쉽게 공유하고 배포할 수 있습니다. TF SavedModel 포맷은 연구와 프로덕션 환경 모두에 유용합니다. 모델을 관리할 수 있는 통합된 방식을 제공하여 모든 애플리케이션에 즉시 활용할 수 있도록 지원합니다.
TF SavedModel의 주요 기능#
TF SavedModel이 AI 개발자에게 훌륭한 옵션이 되는 주요 기능은 다음과 같습니다:
-
이식성: TF SavedModel은 언어 중립적이고 복구 가능하며 밀폐된 직렬화 형식을 제공합니다. 이를 통해 상위 수준의 시스템과 도구에서 TensorFlow 모델을 생성, 소비 및 변환할 수 있습니다. SavedModel은 서로 다른 플랫폼과 환경 간에 쉽게 공유하고 배포할 수 있습니다.
-
배포 용이성: TF SavedModel은 계산 그래프, 학습된 파라미터 및 필요한 메타데이터를 하나의 패키지로 번들링합니다. 모델을 구축한 원래 코드 없이도 쉽게 로드하여 추론에 사용할 수 있습니다. 이는 다양한 프로덕션 환경에서 TensorFlow 모델의 배포를 간단하고 효율적으로 만들어 줍니다.
-
에셋 관리: TF SavedModel은 어휘 목록, 임베딩, 룩업 테이블 같은 외부 에셋을 포함하는 기능을 지원합니다. 이 에셋들은 그래프 정의 및 변수와 함께 저장되므로 모델을 로드할 때 언제든 사용할 수 있습니다. 이 기능은 외부 리소스에 의존하는 모델의 관리와 배포를 간소화합니다.
TF SavedModel을 활용한 배포 옵션#
YOLO26 모델을 TF SavedModel 형식으로 내보내는 과정을 시작하기 전에, 이 형식이 사용되는 일반적인 배포 시나리오를 살펴보겠습니다.
TF SavedModel은 머신 러닝 모델을 배포하기 위한 다양한 옵션을 제공합니다:
-
TensorFlow Serving: TensorFlow Serving은 프로덕션 환경을 위해 설계된 유연하고 고성능인 서빙 시스템입니다. TF SavedModel을 기본적으로 지원하므로 클라우드 플랫폼, 온프레미스 서버, 엣지 디바이스에 모델을 쉽게 배포하고 서비스할 수 있습니다.
-
클라우드 플랫폼: Google Cloud Platform (GCP), Amazon Web Services (AWS), Microsoft Azure 같은 주요 클라우드 제공업체들은 TF SavedModel을 포함하여 TensorFlow 모델을 배포하고 실행하기 위한 서비스를 제공합니다. 이 서비스들은 확장 가능하고 관리되는 인프라를 제공하므로 모델을 간편하게 배포하고 규모를 확장할 수 있습니다.
-
모바일 및 임베디드 디바이스: 모바일, 임베디드 및 IoT 기기에서 머신 러닝 모델을 실행하기 위한 경량 솔루션인 LiteRT(구 TensorFlow Lite)는 TF SavedModel을 LiteRT 포맷으로 변환하는 기능을 지원합니다. 이를 통해 스마트폰과 태블릿부터 마이크로컨트롤러와 엣지 디바이스에 이르기까지 광범위한 기기에서 모델을 배포할 수 있습니다.
-
TensorFlow 런타임: TensorFlow 런타임(
tfrt)은 TensorFlow 그래프를 실행하기 위한 고성능 런타임입니다. C++ 환경에서 TF SavedModel을 로드하고 실행하기 위한 저수준 API를 제공합니다. TensorFlow 런타임은 표준 TensorFlow 런타임에 비해 더 우수한 성능을 제공합니다. 낮은 지연 시간의 추론과 기존 C++ 코드베이스와의 긴밀한 통합이 필요한 배포 시나리오에 적합합니다.
지원되는 작업#
TF SavedModel 내보내기는 7가지 Ultralytics 작업 모두를 지원합니다. 시맨틱 세그멘테이션과 깊이 추정은 해당 헤드가 포함된 유일한 패밀리인 YOLO26에서만 사용할 수 있습니다.
YOLO26 모델을 TF SavedModel로 내보내기#
YOLO26 모델을 TF SavedModel 형식으로 내보내면 다양한 플랫폼 전반에서 적응성과 배포 용이성이 향상됩니다.
설치#
필수 패키지를 설치하려면 다음을 실행하십시오:
# Install the required package for YOLO26
pip install ultralytics설치 과정과 관련된 자세한 지침과 모범 사례는 Ultralytics Installation guide를 확인하세요. YOLO26에 필요한 패키지를 설치하는 동안 문제가 발생하면 Common Issues guide에서 해결 방법과 팁을 참고하세요.
사용법#
모든 Ultralytics YOLO26 모델은 기본적으로 내보내기를 지원하도록 설계되어 선호하는 배포 워크플로에 쉽게 통합할 수 있습니다. 지원되는 내보내기 형식 및 구성 옵션 전체 목록 보기를 통해 애플리케이션에 가장 적합한 설정을 선택할 수 있습니다.
TF SavedModel 포맷은 Export, Predict, Validate 모드를 지원합니다. 모델을 내보낸 후 내보낸 모델을 로드하여 추론을 실행하거나 정확도를 검증하세요.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo26n_saved_model'from ultralytics import YOLO
# Load the exported TF SavedModel model
model = YOLO("./yolo26n_saved_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported TF SavedModel model
model = YOLO("./yolo26n_saved_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")내보내기 인수#
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
format | str | 'saved_model' | 내보낸 모델의 대상 형식이며, 다양한 배포 환경과의 호환성을 정의합니다. |
imgsz | int 또는 tuple | 640 | 모델 입력에 사용할 원하는 이미지 크기입니다. 정방형 이미지의 경우 정수일 수 있으며, 특정 치수의 경우 튜플 (height, width)일 수 있습니다. |
keras | bool | False | Keras 형식으로의 내보내기를 활성화하여 TensorFlow Serving 및 API와의 호환성을 제공합니다. |
quantize | int 또는 str | None | 양자화 정밀도: 8 (INT8/PTQ; 보정 과정 data/fraction 필요) 또는 32/미설정 (FP32). SavedModel 내보내기에서는 FP16이 지원되지 않습니다. 지원 중단된 int8 플래그를 대체합니다. |
opset | int | None | 중간 ONNX 그래프에 대한 ONNX opset 버전을 지정합니다. 설정하지 않으면 지원되는 최신 버전을 사용합니다. |
nms | bool | False | 정확하고 효율적인 탐지 후처리에 필수적인 NMS(Non-Maximum Suppression)를 추가합니다. |
batch | int | 1 | 내보낸 모델의 배치 추론 크기 또는 predict 모드에서 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다. |
data | str | None | 양자화에 필수적인 dataset YAML의 경로입니다. 분류의 경우 데이터셋 디렉터리 또는 기본 제공 데이터셋 이름을 대신 사용합니다. quantize=8을 생략하면 Ultralytics가 모델 태스크에 맞는 기본 보정 데이터셋을 선택합니다. |
fraction | float, int, 또는 list | 1.0 | 비율, 이미지 수 또는 [train, val] 비율/수를 나타내는 캘리브레이션 서브셋입니다. 리스트는 train 또는 val를 제한하는 반면, test은 전체 상태로 유지됩니다. |
device | str | None | 내보내기용 디바이스를 지정합니다: CPU (device=cpu), Apple 실리콘용 MPS (device=mps). |
내보내기 프로세스에 대한 자세한 내용은 내보내기에 관한 Ultralytics 문서 페이지를 방문하세요.
내보낸 YOLO26 TF SavedModel 모델 배포하기#
YOLO26 모델을 TF SavedModel 포맷으로 내보냈으므로, 다음 단계는 모델을 배포하는 것입니다. TF SavedModel 모델을 실행하기 위한 기본적이자 권장되는 첫 번째 단계는 앞선 사용법 코드 예제에서 보여준 바와 같이 YOLO("yolo26n_saved_model/") 메서드를 사용하는 것입니다.
하지만 TF SavedModel 모델 배포에 대한 자세한 지침은 다음 리소스를 참조하십시오:
-
TensorFlow Serving: TensorFlow Serving을 사용하여 TF SavedModel 모델을 배포하는 방법에 대한 개발자 문서입니다.
-
Node.js에서 TensorFlow SavedModel 실행하기: 변환 과정 없이 Node.js에서 TensorFlow SavedModel을 직접 실행하는 방법을 다룬 TensorFlow 블로그 게시물입니다.
-
클라우드에 배포하기: Cloud AI Platform에 TensorFlow SavedModel 모델을 배포하는 방법을 설명하는 TensorFlow 블로그 게시물입니다.
요약#
이 가이드에서는 Ultralytics YOLO26 모델을 TF SavedModel 형식으로 내보내는 방법을 살펴보았습니다. TF SavedModel로 내보내면 다양한 플랫폼에서 YOLO26 모델을 최적화하고 배포하며 확장할 수 있는 유연성을 확보할 수 있습니다.
사용법에 대한 자세한 내용은 TF SavedModel 공식 문서를 방문하여 확인하세요.
Ultralytics YOLO26을 다른 플랫폼 및 프레임워크와 통합하는 방법에 대한 자세한 정보는 통합 가이드 페이지를 확인해 보세요. 프로젝트에서 YOLO26을 최대한 활용하는 데 도움이 되는 풍부한 리소스가 담겨 있습니다.
FAQ#
Ultralytics YOLO 모델을 TensorFlow SavedModel 형식으로 내보내는 것은 간단합니다. Python 또는 CLI를 사용하여 수행할 수 있습니다:
YOLO26을 TF SavedModel로 내보내기from ultralytics import YOLO # Load a YOLO26 model model = YOLO("yolo26n.pt") # Export the model to TF SavedModel format model.export(format="saved_model") # creates '/yolo26n_saved_model' # Load the exported TF SavedModel for inference tf_savedmodel_model = YOLO("./yolo26n_saved_model") results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")자세한 내용은 Ultralytics 내보내기 문서를 참조하세요.
TensorFlow SavedModel 포맷은 모델 배포 시 다음과 같은 여러 가지 장점을 제공합니다.
- 이식성: 언어 중립적인 형식을 제공하여 서로 다른 환경 간에 모델을 쉽게 공유하고 배포할 수 있습니다.
- 호환성: 웹 및 모바일 애플리케이션을 비롯한 다양한 플랫폼에 모델을 배포하는 데 필수적인 TensorFlow Serving, LiteRT, TensorFlow.js 등의 도구와 원활하게 통합됩니다.
- 완벽한 캡슐화: 모델 아키텍처, 가중치 및 컴파일 정보를 인코딩하여 간단하게 공유하고 학습을 지속할 수 있습니다.
더 많은 이점과 배포 옵션에 대해서는 Ultralytics YOLO 모델 배포 옵션을 확인하세요.
TF SavedModel은 다음을 포함한 다양한 환경에 배포할 수 있습니다:
- TensorFlow Serving: 확장 가능하고 고성능인 모델 서빙이 필요한 프로덕션 환경에 이상적입니다.
- 클라우드 플랫폼: 확장 가능한 모델 배포를 위해 Google Cloud Platform(GCP), Amazon Web Services(AWS), Microsoft Azure와 같은 주요 클라우드 서비스를 지원합니다.
- 모바일 및 임베디드 디바이스: LiteRT(구 TensorFlow Lite)를 사용하여 TF SavedModel을 변환하면 모바일 기기, IoT 기기, 마이크로컨트롤러에 배포할 수 있습니다.
- TensorFlow Runtime: 더 나은 성능으로 낮은 지연 시간의 추론이 필요한 C++ 환경을 위한 것입니다.
상세한 배포 옵션에 대해서는 TensorFlow 모델 배포에 관한 공식 가이드를 참조하세요.
YOLO26 모델을 내보내려면
ultralytics패키지를 설치해야 합니다. 터미널에서 다음 명령어를 실행하세요.pip install ultralytics더욱 자세한 설치 지침과 모범 사례는 Ultralytics 설치 가이드를 참조하세요. 문제가 발생할 경우 일반적인 문제 가이드를 확인하시기 바랍니다.
TF SavedModel 형식은 다음과 같은 기능 덕분에 AI 개발자에게 유용합니다:
- 이식성: 다양한 환경에서 손쉽게 공유하고 배포할 수 있습니다.
- 배포 용이성: 계산 그래프, 학습된 파라미터 및 메타데이터를 단일 패키지로 캡슐화하여 로딩 및 추론을 단순화합니다.
- 자산 관리: 어휘 사전과 같은 외부 자산을 지원하여 모델 로드 시 사용할 수 있도록 보장합니다.
자세한 내용은 공식 TensorFlow 문서를 살펴보세요.