Compiler localement un modèle CoreML (coreml.compile_model)
Déclaration
chemin_modele_compile, message_erreur = coreml.compile_model(chemin_fichier_modele)
Paramètres
-
chemin_fichier_modele
type texte, chemin du modèle à compiler. iOS 15 et versions ultérieures prennent en charge le format.mlpackage; iOS 13 et 14 ne prennent en charge que l’ancien format.mlmodelDocumentation sur la conversion de YOLO11 vers CoreML
Exemples de commandes de conversion du format YOLO11 sous macOS
# Cet exemple suppose qu’un environnement Python 3.10 est déjà disponible ; sinon, créez-en un (testé uniquement avec Python 3.10, les versions supérieures n’ont pas été vérifiées)
# Installer ultralytics ; ignorer cette étape si le paquet est déjà installé
pip install ultralytics
# Sous iOS 13 ou iOS 14, spécifier format=mlmodel pour convertir vers l’ancien format mlmodel
yolo export format=mlmodel nms=True model=best.pt
# Sous iOS 15 et versions ultérieures, spécifier format=coreml pour produire un modèle mlpackage
yolo export format=coreml nms=True model=best.pt
# nms=True est facultatif
# Pour intégrer NMS au modèle exporté, vous pouvez l’activer
# Si le post-traitement doit être effectué côté XXTouch avec coreml.nms / coreml.rotated_nms, nms=True peut être omis
Valeur renvoyée
-
chemin_modele_compile
type texte | nil, renvoie le chemin du modèle compilé en cas de réussite etnilen cas d’échec -
message_erreur
type texte | nil, renvoienilen cas de réussite et le message d’erreur en cas d’échec
Description
-
Disponible à partir de la version logicielle 1.3.8
-
Les systèmes antérieurs à iOS 12 ne sont pas pris en charge
-
Cette fonction compile un modèle
.mlpackageou.mlmodelau format.mlmodelc, que l’appareil peut charger directement -
Un modèle
.mlmodelccompilé sur des appareils de modèles ou de versions système différents n’est pas nécessairement interchangeableCommande d’entraînement d’un modèle YOLO11 sur un ordinateur équipé d’un GPU NVIDIA
# Installer d’abord le kit de développement C++ pour ordinateur de Visual Studio ; ignorer cette étape s’il est déjà installé. Lien :
# https://visualstudio.microsoft.com/
# Télécharger et installer CUDA 11.8 Toolkit ; ignorer cette étape s’il est déjà installé. Lien :
# https://developer.nvidia.com/cuda-11-8-0-download-archive
# Cet exemple suppose qu’un environnement Python 3.10 est déjà disponible ; sinon, créez-en un (testé uniquement avec Python 3.10, les versions supérieures n’ont pas été vérifiées)
# Installer ultralytics ; ignorer cette étape si le paquet est déjà installé
pip install ultralytics
# Réinstaller la bibliothèque torch compatible avec NVIDIA CUDA 11.8 Toolkit
# Si une bibliothèque torch compatible CUDA est déjà installée, ignorer cette étape
pip uninstall torch torchvision torchaudio # Désinstaller la version CPU de torch déjà installée sur l’ordinateur
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 # Utiliser le GPU0 pour l’entraînementCommande d’entraînement d’un modèle YOLO11 sous macOS
# Cet exemple suppose qu’un environnement Python 3.10 est déjà disponible ; sinon, créez-en un (testé uniquement avec Python 3.10, les versions supérieures n’ont pas été vérifiées)
# Installer ultralytics ; ignorer cette étape si le paquet est déjà installé
pip install ultralytics
# Si torch est déjà installé, ignorer cette étape
pip install torch torchvision torchaudio
yolo train model=yolo11m.pt data=COCO.yml epochs=300 imgsz=640 device=mps # Utiliser l’accélération du shader Metal pour l’entraînement
Exemple
compiled_model_path = XXT_HOME_PATH..'/models/yolo11m.mlmodelc' -- Emplacement du modèle compilé
file.remove(compiled_model_path) -- Recompiler à chaque fois pendant les tests ; cette ligne peut être commentée lorsque le modèle est stable
if not file.exists(compiled_model_path) then -- Compiler une copie si aucun modèle compilé n’existe encore
local tmp_path, err = coreml.compile_model(XXT_HOME_PATH..'/models/yolo11m.mlpackage') -- Compiler le modèle
if not tmp_path then
error(err)
end
file.move(tmp_path, compiled_model_path, 'mo') -- Déplacer le modèle compilé vers l’emplacement indiqué
end