CoreML에 대하여 궁금하다면 1편을 참고
[Swift] CoreML (1) - CoreML이란?
회사에서 이번에 Model을 앱으로 이관한다고 하여 Apple에서 나온 CoreML을 사용하기위해 알아보게 되었다.Core ML이란 무엇인가?Apple 공식 문서를 보자 Core ML | Apple Developer DocumentationIntegrate machine learni
kimkhuna99.tistory.com
대부분의 모델들은 PyTorch로 모델링을 한다.
그래서 iOS에서 사용할려면 CoreML(.mlmodel)로 변환 해야 한다.
공식 문서에서 PyTorch에서 CoreML 파일로 변환하는 방법에 대하여 나와있다.
PyTorch Conversion Workflow — Guide to Core ML Tools
PyTorch Conversion Workflow Minimum Deployment Target The Core ML Tools Unified Conversion API produces Core ML models for iOS 13, macOS 10.15, watchOS 6, tvOS 13 or newer deployment targets. If your primary deployment target is iOS 12 or earlier, you can
apple.github.io
만약 YOLO를 사용한다면 아래 코드를 사용
from ultralytics import YOLO
# 1) YOLOv8n 모델 로드
model = YOLO("yolov8n.pt")
# 2) Core ML(.mlmodel)로 내보내기
model.export(format="coreml")
YOLO에서 변환하는 것을 지원하는 것 같았다.
그렇지만 YOLO가 아니라면 convert_mlmodel.py을 구성
import coremltools as ct
# 내 모델
model = 'yolov8n.pt'
# Convert to Core ML program using the Unified Conversion API.
model_from_trace = ct.convert(
model,
inputs=[ct.TensorType(shape=example_input.shape)],
)
model_from_export = ct.convert(exported_program)
# Save the converted model.
model_from_trace.save("newmodel_from_trace.mlpackage")
model_from_export.save("newmodel_from_export.mlpackage")
coremltools가 없다면 설치
pip install coremltools
역시 에러가 발생한다
내가 해본 결과 python 3.10 버전에서 가능하여 현재 내 python 버전은 3.13.3이기 때문에 파일 실행에 실패했다.
난 아래 포스팅을 참고하였다.
Mac에서 python downgrade 방법
node-gyp 로 빌드 중 distutils를 못찾는 에러가 발생했습니다.ModuleNotFoundError: No module named 'distutils'원인은 python v3.12 부터 distutils이 제거되었기 때문이라고 합니다. 따라서 python 를
velog.io
변환이 되었다면 모델 파일(.mlpackage)이 생성되었을 것이다.
여기까지 하는데도 파이썬 버전 다운그레이드도 수행해야하고 해서 너무 힘들었다.
다음에는 이 변환한 파일을 사용해보는 것을 구현할려고 한다.
'Develop > CoreML' 카테고리의 다른 글
| [Swift] CoreML (1) - CoreML이란? (0) | 2025.06.23 |
|---|