使用OpenCV4创建输入层时,初始Tensorflow模型C ++错误

时间:2018-11-13 09:41:55

标签: c++ opencv tensorflow

我已经根据tensorflow教程(https://www.tensorflow.org/hub/tutori..。)中的Inception v3训练了一个神经网络。网络可以在C ++中使用tensorflow正常工作。

我正在尝试将其与OpenCV 4.0 beta一起加载。通过以下方式正确加载网络(我使用.pb文件):

net = cv :: dnn :: readNetFromTensorflow (model);

当我对输入图像执行.forward时出现问题,发生异常:

  

错误:在cv :: dnn :: dnn4_v20180917 :: LayerData :: getLayerInstance,文件c:\ build \ master_winpack-build-win64-中,未指定的错误(无法创建类型为“ PlaceholderWithDefault”的图层“ input / BottleneckInputPlaceholder”) vc15 \ opencv \ modules \ dnn \ src \ dnn.cpp,第412行

网络入口层(占位符)需要以下格式类型:float32 [?,299,299.3]

在所有示例中,我都看到输入blob是使用cv :: dnn :: blobFromImage创建的。

我正在使用此呼叫:

cv :: dnn :: blobFromImage (img, blob, 1.0f / 255.0f, Size (299, 299), Scalar (), true, false);

产生此调用的Blob是{FLOAT32,1 x -1 x -1},这似乎很清楚,这不是网络输入层所期望的。

创建入口Blob的正确方法是什么? (条目格式为float32 [?,299,299.3])

请帮助我。

谢谢。

0 个答案:

没有答案