Coreml, Ошибка проверки входных данных. Изображение не является действительным
Попытался следовать https://www.appcoda.com/core-ml-model-with-python/ Для построения распознавания изображений я использую Core ML(Turi Create) + Python + Swift(iOS).
Попытался загрузить то же изображение, которое я использовал для обучения файла.mlmodel. Не помогло Пытался загрузить картинку размером 100х100. Та же ошибка. Что еще я могу попробовать?
Выход:
2018-04-17 20: 54: 19.076605 + 0200 [2516: 1111075] [MC] Контейнером группы систем для пути system group.com.apple.configurationprofiles является /private/var/containers/Shared/SystemGroup/system group.com.apple. configurationprofiles
2018-04-17 20: 54: 19.077580 + 0200 [2516: 1111075] [MC] Чтение из общедоступных эффективных пользовательских настроек.
2018-04-17 20: 54: 54.795691 + 0200 [2516: 1111075] [coreml] Ошибка Domain=com.apple.CoreML Code=1 "Изображение элемента входного изображения не соответствует описанию модели" UserInfo={NSLocalizedDescription= Функция входного изображения изображение не соответствует описанию модели, NSUnderlyingError=0x1c024cf90 {Error Domain=com.apple.CoreML Code=1 "Изображение недопустимо, ширина 227, вместо 224" UserInfo={NSLocalizedDescription= Изображение недопустимо, ширина 227, вместо 224} }}
2018-04-17 20: 54: 54.795728 + 0200 [2516: 1111075] [coreml] Ошибка при проверке входных данных.
По запросу из комментариев:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) {
if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
previewImg.image = image
if let buffer = image.buffer(with: CGSize(width: 224, height: 224)) {
guard let prediction = try? mlModel.prediction(image: buffer) else {
fatalError("Unexpected runtime error")
}
descriptionLbl.text = prediction.foodType
print(prediction.foodTypeProbability)
} else {
print("failed buffer")
}
}
dismiss(animated: true, completion: nil)
}
1 ответ
Сообщение об ошибке буквально говорит о причине ошибки:
2018-04-17 20: 54: 54.795691 + 0200 [2516: 1111075] [coreml] Ошибка Domain=com.apple.CoreML Code=1 "Изображение элемента входного изображения не соответствует описанию модели" UserInfo={NSLocalizedDescription= Функция входного изображения изображение не соответствует описанию модели, NSUnderlyingError=0x1c024cf90 {Error Domain=com.apple.CoreML Code=1 "Изображение недопустимо, ширина 227, вместо 224" UserInfo={NSLocalizedDescription= Изображение недопустимо, ширина 227, вместо 224}}}
Используемая вами модель (я подозреваю, что это SqueezeNet) ожидает входные изображения размером 227x227, а не 224x224 или любого другого размера.