X2Paddle
X2Paddle copied to clipboard
pytorch转pp模型失败
pytorch转pp模型,提示算子不支持。是否可以先转onnx,在转pp pytorch模型来源:https://github.com/cfzd/Ultra-Fast-Lane-Detection
工具:全部为最新版本
报错信息:
INFO 2022-06-22 09:45:43,293 convert.py:333] Now translating model from PyTorch to Paddle.
Traceback (most recent call last):
File "E:\pythonProject\testLaneDetect\main.py", line 60, in
========= 1 OPs are not supported yet =========== ========== aten::linear ============
Process finished with exit code 1
应该是算子不支持,但是有没有其他work around方法?
@levinzhangyd X2Paddle是1.3.7版本吗,目前aten::linear已经支持
另外有两个问题可能需要您描述一下: 1、您具体的业务场景 2、为什么有转到Paddle部署的需求呢?
感谢~
1、您具体的业务场景 移动端开发,想把一些成熟的模型用到移动端进行集成 2、为什么有转到Paddle部署的需求呢? 转到paddleLite,是因为目前国内的MNN/NCNN/Paddle_Lite支持比较多一点,并且支持国产嘛。
另外:由于公司网络问题,github不容易登上去,咨询下社区是否有其他路径下的技术支持呢,有的话麻烦帮忙指引下,非常感谢。更新了最新版本的x2paddle,目前来看可以往下走了,谢谢~
还是无法生成,求指导 Fail to generate inference model! Problem happend while export inference model from python code '***\pytorch_2_pp_out\x2paddle_code.py';
===================Error Information===============
Traceback (most recent call last):
File "E:\pythonProject\testLaneDetect\main.py", line 62, in
File "E:\deep-learning\lane_detect\_Ultra_Fast_module\pytorch_2_pp_out\x2paddle_code.py", line 249, in forward
x11 = self.x10(x9)
x12 = paddle.flatten(x=x11, start_axis=1)
x13 = self.linear__0(x12)
~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE
return x13
File "C:\Users\uidq5147\.conda\envs\paddle_dev\lib\site-packages\paddle\fluid\dygraph\layers.py", line 930, in __call__
return self._dygraph_call_func(*inputs, **kwargs)
File "C:\Users\uidq5147\.conda\envs\paddle_dev\lib\site-packages\paddle\fluid\dygraph\layers.py", line 915, in _dygraph_call_func
outputs = self.forward(*inputs, **kwargs)
TypeError: forward() missing 1 required positional argument: 'x2'
@levinzhangyd 麻烦把模型参数、组网、转换脚本整体打包上传到百度云,这边看一下~
链接:https://pan.baidu.com/s/1zmMSJa7TC-Ezg69iC8LOpQ 提取码:1234
链接中的项目代码均来源于https://github.com/cfzd/Ultra-Fast-Lane-Detection 如果任何差异,以git上的版本为准。
转换使用的模型为:culane_18.pth
补充一个点:我看到paddle上有人已经在用这个模型进行预测了。所以大概率是可以转的,但是中间报错,不知道当时社区的那个兄弟怎么处理的。 paddle上对应的Demo:https://aistudio.baidu.com/aistudio/projectdetail/1553836?channelType=0&channel=0
重新开了一个虚拟环境: python=3.8 torch=1.7.1. 转换成paddle成功了,感谢~ 但是,这个版本下无法直接pip install paddlelite了······ 所以没法一步到位的转换成终端需要的文件,只能在分步骤转了,非常感谢 之前都用的最新版本 python=3.9 torch=1.11
咨询下此类问题的解决思路: 这种这个版本行,最新版本不行的问题,只能每次去试验吗?新手求思路。 是pytorch版本不向下兼容的问题,还是x2paddle无法适配到最新版pytorch的问题,有啥解决这种问题的建议吗?
但是,这个版本下无法直接pip install paddlelite了
@levinzhangyd 不太理解这句话什么意思,为什么这个版本无法安装paddlelite呢
torch版本问题是因为X2Paddle开发都是基于torch 1.6~1.7去开发,所以最新版本的torch可能出现不适配情况~
大概试验清楚了: 如果使用python=3.9.可以pip直接安装paddlelite,但是无法安装pytorch=1.7.1.版本不兼容 如果使用python=3.8.pip安装paddlelite会提示找不到对应的版本(已经添加清华的源),但是可以安装pytorch=1.7.1.经过测试 1.用之前的转换方法直接pytorch转paddle模型可以 2因为无法安装paddlelite,所以不能一步转换到Lite,必须先转换到paddle模型,加载后使用opt工具在转到paddle-lite需要的nb文件。
x2paddle因为算子支持问题,必须使用代码装最新开发版(1.3.7)
一句话总结:各种版本问题,其实就是兼容性还做的不是很好。非常感谢楼主这一周以来对我的帮助,3q~~~
