operator did not match Pytorch's Interpolation until opset 11

operator did not match Pytorch's Interpolation until opset 11

参考:https://blog.csdn.net/github_28260175/article/details/103436020

解决办法
警告信息已经完整说明,ONNX's Upsample/Resize operator did not match Pytorch's Interpolation until opset 11.,因此将ONNX的导出代码中规定其版本,具体如下:

import torch
torch.onnx.export(model, ..., opset_version=11)
 

加了以后,上下采样好像支持了,报另一个错:

cv2.error: OpenCV(4.2.0) D:\Build\OpenCV\opencv-4.2.0\modules\dnn\src\layers\padding_layer.cpp:41: error: (-215:Assertion failed) params.has("paddings") in function 'cv::dnn::PaddingLayerImpl::PaddingLayerImpl'

这个是不支持平均迟化层,能迟化,迟化后的层有问题。

不用平均迟化,又报错:

onnx_importer.cpp:110: error: (-215:Assertion failed) !tensor_proto.raw_data().empty() || !tensor_proto.float_data().empty() || !tensor_proto.double_data().empty() || !tensor_proto.int64_data().empty() in function 'cv::dnn::dnn4_v20191202::getMatFromTensor'
报错代码:

return funtion.interpolate(P5_td, size=P4_td_inp.shape[2:], mode="nearest")

原因:opencv 的dnn不支持上采样,但是onnx本身是支持的,

临时解决方法:

session = onnxruntime.InferenceSession(onnx_path)
发布了2672 篇原创文章 · 获赞 973 · 访问量 527万+

猜你喜欢

转载自blog.csdn.net/jacke121/article/details/104333902