Я обучил модель YOLOv3-SPP, используя PyTorch. Затем я сохранил его как модель ONNX, а затем преобразовал его в CoreML, используя onnx-coreml
. Когда я пытаюсь сделать прогноз, используя модель, я получаю эту ошибку:
YOLOv3-CoreML[13481:1004975] [espresso] [Espresso::handle_ex_plan] exception=Espresso exception: "Invalid state": reshape mismatching size: 13 13 24 1 1 -> 6 10 8 3 1 [Exception from Layer: 149: 300]
2020-03-16 13:46:05.248612-0500 YOLOv3-CoreML[13481:1004975] [coreml] Error computing NN outputs -1
Это код, который я использую для прогноза:
if let prediction = try? model.prediction(input_1: image) {
print("Output: \(prediction)")
}
Я кое-что нашел найти слой # 149. Я использовал этот скрипт, чтобы найти его имя:
import coremltools
import numpy as np
mlmodel = coremltools.models.MLModel("model.mlmodel")
spec = mlmodel._spec
print(spec.neuralNetwork.layers[149])
Я нашел его имя "308". Итак, я открыл модель в Netron и получил:
Рассматриваемый слой обведен красным. Как я могу заставить мою модель CoreML работать должным образом?