你怎么知道dnn支持的层?
Posted
技术标签:
【中文标题】你怎么知道dnn支持的层?【英文标题】:How can you know the layers supported by dnn? 【发布时间】:2020-11-01 20:05:06 【问题描述】:我在 Tensorflow 中实现了一个神经网络。该网络非常简单,仅使用 Cov2D、MaxPooling 和 UpSampling2D。
规格如下:
Python:3.7 张量流:1.14.0 Keras:2.2.4-tf Ubuntu:18.04.4 LTS网络经过训练后,我将其转换为 .pb,以便能够在 Windows PC 上从 OpenCV 和 C++ 读取它。
Windows 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。你同意吗?怎么查?
【问题讨论】:
你能评论***.com/questions/53570257/… 【参考方案1】:我无法查看 opencv dnn 支持的层,但如果将 opencv 更新到 4.2,问题就会消失。最有可能的是,opecv 3.4 不支持 UpSampling,这已针对 opencv 4.2 进行了更新。
【讨论】:
我正在使用 OpenCV(4.5.3) 并收到此错误:net = cv2.dnn.readNet(path2frozengraph) cv2.error: OpenCV(4.5.3) /tmp/pip-req-build -tjxnaiom/opencv/modules/dnn/src/tensorflow/tf_importer.cpp:1464: 错误: (-215:Assertion failed) scaleMat.type() == CV_32FC1 in function 'parseMul'以上是关于你怎么知道dnn支持的层?的主要内容,如果未能解决你的问题,请参考以下文章
有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层?