您如何知道dnn支持的图层?

时间:2020-11-01 20:05:06

标签: python c++ tensorflow opencv keras

我已经在Tensorflow中实现了神经网络。该网络非常简单,仅使用Cov2D,MaxPooling和UpSampling2D。

规格为:

  • Python:3.7
  • Tensorflow:1.14.0
  • keras:2.2.4-tf
  • Ubuntu:18.04.4 LTS

一旦对网络进行了培训,我便将其转换为.pb,以便能够在Windows PC上从OpenCV和C ++读取它。

  • Windws 10
  • Opencv:3.4.0

但是当我在C ++上阅读NN时出现下一个错误:

cv::dnn::Net MODEL = cv::dnn::readNetFromTensorflow("SLI_model_64.pb");

up_sampling2d/Shape:Shape(conv2d_5/Relu)
out_type:[ ]
T:0
OpenCV Error: Unspecified error (Unknown layer type Shape in op up_sampling2d/Shape) in cv::dnn::experimental_dnn_v3::`anonymous-namespace'::TFImporter::populateNet, file c:\sdk\opencv\3.4.0\sources\modules\dnn\src\tensorflow\tf_importer.cpp, line 1487

如我所知,C ++版本不支持Upsamplig。你同意吗?我该如何检查?

1 个答案:

答案 0 :(得分:0)

我无法查看opencv dnn支持的图层,但是如果将opencv更新到4.2,该问题就会消失。 opecv 3.4最有可能不支持UpSampling,并且已针对opencv 4.2进行了更新。