기기에서 CoreML 모델 컴파일 (coreml.compile_model)
선언
컴파일된 모델 경로, 오류 정보 = coreml.compile_model(모델 파일 경로)
매개변수
-
모델 파일 경로
문자열형. 컴파일할 모델의 경로입니다. iOS 15 이상에서는.mlpackage형식을 지원하며, iOS 13, 14에서는 기존.mlmodel형식만 지원합니다.macOS에서 YOLO11 형식을 변환하는 명령 참고
# Python 3.10 환경이 이미 있다고 가정합니다. 없다면 직접 생성하십시오(Python 3.10에서만 테스트했으며 상위 버전은 확인하지 않았습니다).
# 먼저 ultralytics를 설치합니다. 이미 설치했다면 이 단계를 건너뜁니다.
pip install ultralytics
# iOS 13 또는 iOS 14에서는 format을 mlmodel로 지정하여 기존 mlmodel로 변환할 수 있습니다.
yolo export format=mlmodel nms=True model=best.pt
# iOS 15 이상에서는 format을 coreml로 지정하여 mlpackage 모델로 변환할 수 있습니다.
yolo export format=coreml nms=True model=best.pt
# nms=True는 필수가 아닙니다.
# NMS를 내보내는 모델에 인라인으로 포함하려면 활성화할 수 있습니다.
# XXTouch에서 coreml.nms / coreml.rotated_nms를 사용해 직접 후처리할 예정이라면 nms=True를 생략할 수도 있습니다.
반환값
-
컴파일된 모델 경로
문자열형 | nil. 컴파일에 성공하면 컴파일된 모델 경로, 실패하면nil을 반환합니다. -
오류 정보
문자열형 | nil. 컴파일에 성공하면nil, 실패하면 오류 정보를 반환합니다.
설명
-
소프트웨어 버전 1.3.8 이상에서 사용할 수 있습니다.
-
iOS 12 미만 시스템 버전은 지원하지 않습니다.
-
이 함수는
.mlpackage또는.mlmodel형식의 모델을 기기에서 직접 불러올 수 있는.mlmodelc형식으로 컴파일합니다. -
기기 모델이나 시스템 버전이 다르면 컴파일된
.mlmodelc를 공통으로 사용하지 못할 수 있습니다.NVIDIA 그래픽 카드가 있는 컴퓨터에서 YOLO11 모델을 학습하는 명령
# 먼저 컴퓨터에 Visual Studio C++ 데스크톱 개발 도구를 설치합니다. 이미 설치했다면 이 단계를 건너뜁니다. 링크는 다음과 같습니다.
# https://visualstudio.microsoft.com/
# 컴퓨터에 CUDA 11.8 Toolkit을 다운로드하여 설치합니다. 이미 설치했다면 이 단계를 건너뜁니다. 링크는 다음과 같습니다.
# https://developer.nvidia.com/cuda-11-8-0-download-archive
# Python 3.10 환경이 이미 있다고 가정합니다. 없다면 직접 생성하십시오(Python 3.10에서만 테스트했으며 상위 버전은 확인하지 않았습니다).
# 먼저 ultralytics를 설치합니다. 이미 설치했다면 이 단계를 건너뜁니다.
pip install ultralytics
# NVIDIA CUDA 11.8 Toolkit을 지원하는 torch 라이브러리를 다시 설치합니다.
# CUDA를 지원하는 torch 라이브러리가 이미 설치되어 있다면 이 단계를 건너뜁니다.
pip uninstall torch torchvision torchaudio # 컴퓨터에 설치된 CPU 버전 torch 제거
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118
yolo train model=yolo11m.pt data=COCO.yml epochs=300 imgsz=640 device=0 # GPU0으로 학습macOS에서 YOLO11 모델을 학습하는 명령
# Python 3.10 환경이 이미 있다고 가정합니다. 없다면 직접 생성하십시오(Python 3.10에서만 테스트했으며 상위 버전은 확인하지 않았습니다).
# 먼저 ultralytics를 설치합니다. 이미 설치했다면 이 단계를 건너뜁니다.
pip install ultralytics
# torch가 이미 설치되어 있다면 이 단계를 건너뜁니다.
pip install torch torchvision torchaudio
yolo train model=yolo11m.pt data=COCO.yml epochs=300 imgsz=640 device=mps # Metal 셰이더로 학습 가속
예제
compiled_model_path = XXT_HOME_PATH..'/models/yolo11m.mlmodelc' -- 컴파일된 모델 저장 위치
file.remove(compiled_model_path) -- 테스트 단계에서는 매번 다시 컴파일하며, 모델이 안정되면 이 줄을 주석 처리할 수 있습니다.
if not file.exists(compiled_model_path) then -- 아직 컴파일된 모델이 없다면 하나를 컴파일합니다.
local tmp_path, err = coreml.compile_model(XXT_HOME_PATH..'/models/yolo11m.mlpackage') -- 모델 컴파일
if not tmp_path then
error(err)
end
file.move(tmp_path, compiled_model_path, 'mo') -- 컴파일된 모델을 지정 위치로 이동합니다.
end