OpenCV DNN,从tensorflow断言导入.pb文件失败错误:函数'populateNet'中的scaleMat.type()== CV_32FC1

时间:2018-12-01 11:19:07

标签: tensorflow deep-learning computer-vision opencv3.1

我正在尝试使用导入一个冻结的(并使用tensorflow.python.tools.optimize_for_inference进行了优化)的pb“ optimized.pb”文件

cv2.dnn.readNetFromTensorflow("optimized.pb")

这导致以下错误:

Traceback (most recent call last):
File "opencv.py", line 4, in <module>
    net = cv2.dnn.readNetFromTensorflow("optimized.pb")
cv2.error: OpenCV(3.4.3) /io/opencv/modules/dnn/src/tensorflow/tf_importer.cpp:1380: error: (-215:Assertion failed) scaleMat.type() == CV_32FC1 in function 'populateNet'

该模型包括转置卷积层。但是,当我不包含任何反卷积层时,错误就会消失。

有人可以帮助我理解和纠正此错误吗?

1 个答案:

答案 0 :(得分:0)

我已通过替换解决了网络中的错误 up8 = UpSampling2D(大小=(2,2),插值='双线性')(conv7) 至 up8 = UpSampling2D(大小=(2,2))(conv7) 看来我的opencv(版本3.4.6)在UpSampling2D层中不支持双线性插值。