ValueError:图像的输入形状无效。在keras模型中转换为核心ml

时间:2019-08-29 08:37:40

标签: tensorflow keras yolo coremltools

我已经用Darknet训练了YOLOv3网络,以识别图像中的某些obj。一切都OK。 我想在iOS应用中使用权重文件,因此按照一些教程,我从darknet权重文件ancd中获得了keras h5模型,我检查了h5模型也可以正常工作。好。 最后一步,我使用coremltools尝试在xcode下可用的coreml模型中转换h5模型。 这是我的问题。。。这个小py脚本执行了最后一次转换:

4

运行脚本时,我总是会遇到此错误:

import coremltools

....

coreml_model = coremltools.converters.keras.convert('yolorcgz.h5', input_names='image', class_labels=output_labels, image_input_names='image', input_name_shape_dict={'image': [1, 416, 416, 3]})

coreml_model.input_description['image'] = 'Takes a photo'
coreml_model.output_description['output'] = 'Prediction of obj in the photo'

coreml_model.author = 'SW Team'
coreml_model.license = 'Public Domain'
coreml_model.short_description = "YOLOv3 network trained for obj recognition"

coreml_model.save('yolorcgz.mlmodel')

有什么想法可能会出错吗? 非常感谢

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我将input_name_shape_dict={'image': [1, 416, 416, 3]}更改为input_name_shape_dict={'image': [None, 416, 416, 3]}

我正在使用Keras 2.3.1和Tensorflow 1.14.0,这对我有用。