Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

我尝试用你的提供的代码转onnx时碰到了TypeError: upsample_bilinear2d() received an invalid combination of arguments #17

Open
Sourishlemon opened this issue Feb 17, 2022 · 16 comments

Comments

@Sourishlemon
Copy link

Sourishlemon commented Feb 17, 2022

这是我的model的forward
QQ图片20220217173302
这是报错
CI4BHW JTC5 XECR%Q QGKM
我是这样运行的
python Exporter.py --model-variant mobilenetv3 --precision float32 --opset 13 --device cpu --output D:\下载\test.onnx

@DefTruth
Copy link
Owner

可以看一下这个issue:

你这里看起来像是downsample_ratio的数据类型不对。

@Sourishlemon
Copy link
Author

Sourishlemon commented Feb 17, 2022

L(KSE%A5SY_) 9Z2%PCUB70
我尝试了改了下model里的downsample_ratio=0.25还尝试了把w,h设置为1920,1080都不行。
YTK@PE{A9D{KYNRIAG%OXXW
我打印了x为
F0TR0YJOGO2UIW U78KQR`E
为什么调用 x = F.interpolate函数时,格式就错了呢

@DefTruth
Copy link
Owner

你看看upsample_bilnear2d对于scale_factor的要求吧,需要是 float元组或float,不是Tensor

@Sourishlemon
Copy link
Author

感谢,成功转成openvino了,就是不知道怎么推理测试,网上例子都是针对图片的,我要输入的是视频该怎么做呢

@DefTruth
Copy link
Owner

可以参考我写的一个动态onnx推理的python版本,在我fork的分支里的inference_onnx.py(可以推理视频):

以及我在RVM里的PR:

我这个仓库的C++ API有推理视频的接口啊,你看下README.md

@Sourishlemon
Copy link
Author

YD%IV5K6$K9BRG$KXGHY3B8
我尝试用生成的IR文件用openvino推理部署,但是遇到了问题,我不知道为什么输入的大小要求是rl1的1,16,135,240,而不是src的1,3,720,1280,该怎么解决呢

@DefTruth
Copy link
Owner

请看以下这个issue中的讨论,已经有说明:

至于理解为什么这样做,可能需要你看一下RVM的论文,以及它的pytorch源码进行理解。

@Sourishlemon
Copy link
Author

image
老哥根据你的代码,我该成功了,但是不知道为什么效果很差
image

@DefTruth
Copy link
Owner

这我就不太清楚了,openvino我也没玩过

@DefTruth
Copy link
Owner

你的数据预处理出错了。为啥是减去这些均值呢?RVM的源码没有啊。它的预处理是:

transform = transforms.Compose([
            transforms.Resize(input_resize[::-1]),
            transforms.ToTensor()
        ])

transforms.ToTensor()里面做了归一化,x=x/255.

@Sourishlemon
Copy link
Author

老哥我将自己导出的onnx用你的inference_onnx.py将输入改成设置的静态rlx发现运行的结果和转成openvino的一样,效果很差说明是我的onnx转的有问题但是我model也改了,export也改了还有哪边是我没注意到的吗
image
image

@DefTruth
Copy link
Owner

你要不考虑直接用RVM官方提供的onnx吧,然后用我写的inference_onnx.py来推理,效果应该是没问题的。openvino我是真不了解,用的太少了。

@Sourishlemon
Copy link
Author

老哥你有试过按静态输入转成的onnx的效果吗,就是像我上面那样,我想知道是不是就我这样,可否麻烦你测试下,磕头

@DefTruth
Copy link
Owner

我没有保留我转的静态onnx,我拿来转静态的MNN和TNN文件后就删掉了。ONNXRuntime版本的我是拿动态的来推的。过去大半年啦.....

@Sourishlemon
Copy link
Author

不好意思,感谢老哥了

@DefTruth DefTruth reopened this Feb 21, 2022
@DefTruth
Copy link
Owner

鉴于问这个问题的人比较多,我写了一份详细的知乎教程,请参考:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants