Компиляция модели CoreML на устройстве (coreml.compile_model)
Объявление
путь_скомпилированной_модели, сообщение_об_ошибке = coreml.compile_model(путь_к_файлу_модели)
Параметры
-
путь_к_файлу_модели
Текстовое значение, путь к компилируемой модели. Формат.mlpackageподдерживается в iOS 15 и выше; в iOS 13 и 14 поддерживается только старый формат.mlmodelДокументация по преобразованию YOLO11 в CoreML
Пример команд преобразования формата YOLO11 в macOS
# Предполагается, что у вас уже есть окружение 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, скомпилированные на устройствах разных моделей или с разными версиями системы, не обязательно совместимы между собойКоманды обучения модели YOLO11 на компьютере с видеокартой NVIDIA
# Сначала установите пакет средств разработки C++ для Visual Studio; если он уже установлен, пропустите этот шаг. Ссылка:
# 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
# Переустановить библиотеку torch с поддержкой NVIDIA CUDA 11.8 Toolkit
# Если вы уверены, что torch с поддержкой CUDA уже установлен, пропустите этот шаг
pip uninstall torch torchvision torchaudio # Удалить установленную на компьютере версию torch для CPU
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 для обученияКоманды обучения модели YOLO11 в macOS
# Предполагается, что у вас уже есть окружение 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