我已经在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。你同意吗?我该如何检查?

    最佳答案

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

    关于python - 您怎么知道dnn支持的图层?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64636427/

    10-12 16:24