2017-08-08 77 views
1

我已经使用Keras(2.0.4)& Tensorflow(1.1.0)进行了再培训和微调Inception_v3。当我使用coremltools将Keras模型转换为MLmodel时,我得到一个需要输入MultiArray的模型。 如果我了解它是在询问[高度,宽度,RGB] =(299,299,3),那么这是有道理的。但我不知道如何将CVPixelBuffer转换为该格式。CoreML - 如何预处理InceptionV3的图像为MultiArray <Double, 3>?

有人可以帮我理解什么预处理需要发生,我重新训练的模型在coreml中工作吗?或者我需要在转换中做什么,以便它可以接受CVPixelBuffer?

回答

1

我已经重新训练了InceptionV3,但回去看看我的代码。我没有在keras中将输入形状设置为299,299。我在预处理过程中将所有照片都强制为这种大小。结果是Model-JSON不包含输入维度,而是具有值:[null,null,null,3],并且到CoreML的转换无法知道输入变量应该是299,299。能够保存模型权重,保存模型的json字符串,编辑json以获得正确的输入[null,299,299,3],加载编辑后的json字符串作为新模型,加载权重和中提琴! coreML模型现在可以正确接受Image