CoreML モデルをデバイス上でコンパイルする (coreml.compile_model)
宣言
コンパイル済みモデルのパス, エラー情報 = coreml.compile_model(モデルファイルのパス)
パラメータ
-
モデルファイルのパス
文字列型。コンパイルするモデルのパスです。iOS 15 以降では.mlpackage形式を使用できます。iOS 13、14 では従来の.mlmodel形式のみ使用できますYOLO11 から CoreML への変換に関するドキュメント
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 GPU を搭載した PC での YOLO11 モデル学習コマンド
# まず PC に Visual Studio の C++ デスクトップ開発ワークロードをインストールします。インストール済みの場合は省略してください。リンクは以下のとおりです
# https://visualstudio.microsoft.com/
# PC に 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 # PC にインストールされている 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