Pytoch(.pt)をCoreMLに変換する
CoreMLでは事前に学習させていたモデルをCoreMLモデルに簡単に変換できます
1.同じ階層に.ptファイルを用意する
2.以下のコードを実行するだけ
coreml.py
from ultralytics import YOLO#インポート
model = YOLO('./best.pt')
model.export(format='coreml', nms=True)
この変換方法はUltralytics YOLOの方法を用いています。
他にも、CoreMLToolsを使用する方法
import coremltools as ct
import torch
import torchvision
# PyTorchモデルの定義とロード
model = torchvision.models.resnet18(pretrained=True)
model.eval()
# サンプル入力の作成
example_input = torch.rand(1, 3, 224, 224)
# トレースモデルの作成
traced_model = torch.jit.trace(model, example_input)
# CoreMLモデルに変換
coreml_model = ct.convert(traced_model, inputs=[ct.TensorType(name="input", shape=example_input.shape)])
# CoreMLモデルの保存
coreml_model.save("ResNet18.mlmodel")
など変換方法は様々です。