Toybrick

标题: rknn.load_pytorch 模型加载接口报错 [打印本页]

作者: ivanzheng    时间: 2020-4-20 10:39
标题: rknn.load_pytorch 模型加载接口报错

Hi 你好,
我在将pytorch 模型转换成 rknn模型时,出现以下错误, 看错误信息好像是PixelShuffle 算子不支持, 如果想把这个模型(超分辨率)跑在 rk3399pro 上面,需要如何处理,请指教,多谢

rknn 版本: 1.3

模型repo:
https://github.com/thstkdgus35/EDSR-PyTorch

错误信息:
E Catch exception when loading pytorch model: ./edsr_baseline_x2_pytorch.pt!
E Traceback (most recent call last):
E   File "rknn/api/rknn_base.py", line 567, in rknn.api.rknn_base.RKNNBase.load_pytorch
E   File "rknn/base/RKNNlib/app/importer/import_pytorch.py", line 95, in rknn.base.RKNNlib.app.importer.import_pytorch.ImportPytorch.run
E   File "rknn/base/RKNNlib/converter/convert_pytorch.py", line 517, in rknn.base.RKNNlib.converter.convert_pytorch.convert_pytorch.__init__
E   File "rknn/base/RKNNlib/converter/convert_pytorch.py", line 601, in rknn.base.RKNNlib.converter.convert_pytorch.convert_pytorch.model_simplify
E   File "rknn/base/RKNNlib/converter/convert_pytorch.py", line 104, in rknn.base.RKNNlib.converter.convert_pytorch.torch_inference_engine.shape_pick
E   File "rknn/base/RKNNlib/converter/convert_pytorch.py", line 139, in rknn.base.RKNNlib.converter.convert_pytorch.torch_inference_engine.__ir_shape_inference
E   File "rknn/base/RKNNlib/converter/convert_pytorch.py", line 247, in rknn.base.RKNNlib.converter.convert_pytorch.torch_inference_engine.convolution_shape
E   File "rknn/base/RKNNlib/converter/convert_pytorch.py", line 104, in rknn.base.RKNNlib.converter.convert_pytorch.torch_inference_engine.shape_pick
E   File "rknn/base/RKNNlib/converter/convert_pytorch.py", line 139, in rknn.base.RKNNlib.converter.convert_pytorch.torch_inference_engine.__ir_shape_inference
E   File "rknn/base/RKNNlib/converter/convert_pytorch.py", line 247, in rknn.base.RKNNlib.converter.convert_pytorch.torch_inference_engine.convolution_shape
E   File "rknn/base/RKNNlib/converter/convert_pytorch.py", line 104, in rknn.base.RKNNlib.converter.convert_pytorch.torch_inference_engine.shape_pick
E   File "rknn/base/RKNNlib/converter/convert_pytorch.py", line 139, in rknn.base.RKNNlib.converter.convert_pytorch.torch_inference_engine.__ir_shape_inference
E KeyError: 'aten::pixel_shuffle'
Load pytorch model failed!



作者: jefferyzhang    时间: 2020-4-20 11:05
请问下pyTorch的版本号是多少
作者: ivanzheng    时间: 2020-4-20 11:20
jefferyzhang 发表于 2020-4-20 11:05
请问下pyTorch的版本号是多少

pytorch 版本:1.2.0

作者: jefferyzhang    时间: 2020-4-20 11:29
ivanzheng 发表于 2020-4-20 11:20
pytorch 版本:1.2.0

解决方法:
1. 我会把这个op报给相关部门支持,要等未来版本出来大家才能用到。
2. 自己修改模型绕过这个OP
3. 用其他的框架试试,例如pytorch转onnx再转rknn
4. 尝试自己支持,我们rknn支持自定op,可以自己根据op的逻辑写一个op出来。
作者: ivanzheng    时间: 2020-4-20 11:41
jefferyzhang 发表于 2020-4-20 11:29
解决方法:
1. 我会把这个op报给相关部门支持,要等未来版本出来大家才能用到。
2. 自己修改模型绕过这个 ...

好的,感谢, 下一个发布版本会支持嘛? 下个版本预计什么时候发布哈?
另外, 如果是tensorflow 实现的这个模型,  PixelShuffle  算子 rknn 目前支持不?
作者: jefferyzhang    时间: 2020-4-20 11:49
ivanzheng 发表于 2020-4-20 11:41
好的,感谢, 下一个发布版本会支持嘛? 下个版本预计什么时候发布哈?
另外, 如果是tensorflow 实现的这 ...

这个我也不确定,我不是NPU部门的,我也只是一个rknn的开发者之一。只能说试试。
作者: jefferyzhang    时间: 2020-4-24 15:37
NPU部门回复:

1.请用1.3.3_beta2版本:
链接: https://pan.baidu.com/s/12ayycMiZGvJnpcD13DmH9g 密码: fe2w
2.rknn.config里加上optimization_level=2
作者: topology    时间: 2021-1-11 15:02
rknn.config(channel_mean_value='123.675 116.28 103.53 58.82', reorder_channel='0 1 2')  
Input_Size = [[3,640,640]]
ret = rknn.load_pytorch(model='weights/best_person_plate_clean.pt',input_size_list=Input_Size) 出错
weights/best_person_plate_clean.pt ********************
E Catch exception when loading pytorch model: weights/best_person_plate_clean.pt!
E Traceback (most recent call last):
E   File "rknn/api/rknn_base.py", line 611, in rknn.api.rknn_base.RKNNBase.load_pytorch
E   File "rknn/base/RKNNlib/app/importer/import_pytorch.py", line 97, in rknn.base.RKNNlib.app.importer.import_pytorch.ImportPytorch.run
E   File "rknn/base/RKNNlib/converter/convert_pytorch.py", line 592, in rknn.base.RKNNlib.converter.convert_pytorch.convert_pytorch.__init__
E   File "/home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/torch/jit/__init__.py", line 162, in load
E     cpp_module = torch._C.import_ir_module(cu, f, map_location, _extra_files)
E RuntimeError: [enforce fail at inline_container.cc:137] . PytorchStreamReader failed reading zip archive: failed finding central directory
E frame #0: c10::ThrowEnforceNotMet(char const*, int, char const*, std::string const&, void const*) + 0x5b (0x7f6d5e8d7bcb in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/torch/lib/libc10.so)
E frame #1: caffe2::serialize:yTorchStreamReader::valid(char const*) + 0x6b (0x7f6d6842202b in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/torch/lib/libtorch.so)
E frame #2: caffe2::serialize:yTorchStreamReader::init() + 0x9a (0x7f6d68425ada in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/torch/lib/libtorch.so)
E frame #3: caffe2::serialize:yTorchStreamReader:yTorchStreamReader(std::string const&) + 0x60 (0x7f6d68428b40 in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/torch/lib/libtorch.so)
E frame #4: torch::jit::import_ir_module(std::shared_ptr<torch::jit::script::CompilationUnit>, std::string const&, c10:ptional<c10:evice>, std::unordered_map<std::string, std::string, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, std::string> > >&) + 0x38 (0x7f6d69507928 in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/torch/lib/libtorch.so)
E frame #5: <unknown function> + 0x4d6903 (0x7f6d8f705903 in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/torch/lib/libtorch_python.so)
E frame #6: <unknown function> + 0x1c8316 (0x7f6d8f3f7316 in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/torch/lib/libtorch_python.so)
E <omitting python frames>
E frame #11: <unknown function> + 0x21266 (0x7f6d9679c266 in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/rknn/base/RKNNlib/converter/convert_pytorch.cpython-36m-x86_64-linux-gnu.so)
E frame #12: <unknown function> + 0x22c07 (0x7f6d9679dc07 in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/rknn/base/RKNNlib/converter/convert_pytorch.cpython-36m-x86_64-linux-gnu.so)
E frame #13: <unknown function> + 0x75ccd (0x7f6d967f0ccd in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/rknn/base/RKNNlib/converter/convert_pytorch.cpython-36m-x86_64-linux-gnu.so)
E frame #19: <unknown function> + 0x6dec (0x7f6d96e3adec in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/rknn/base/RKNNlib/app/importer/import_pytorch.cpython-36m-x86_64-linux-gnu.so)
E frame #20: <unknown function> + 0xd6a1 (0x7f6d96e416a1 in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/rknn/base/RKNNlib/app/importer/import_pytorch.cpython-36m-x86_64-linux-gnu.so)
E frame #21: <unknown function> + 0x1388c (0x7f6d96e4788c in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/rknn/base/RKNNlib/app/importer/import_pytorch.cpython-36m-x86_64-linux-gnu.so)
E frame #22: <unknown function> + 0x21f4d (0x7f6e1eda5f4d in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/rknn/api/rknn_base.cpython-36m-x86_64-linux-gnu.so)
E frame #23: <unknown function> + 0x23b99 (0x7f6e1eda7b99 in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/rknn/api/rknn_base.cpython-36m-x86_64-linux-gnu.so)
E frame #24: <unknown function> + 0xa085c (0x7f6e1ee2485c in /home/denghui/anaconda3/envs/rknn/lib/python3.6/site-packages/rknn/api/rknn_base.cpython-36m-x86_64-linux-gnu.so)
E frame #39: __libc_start_main + 0xf0 (0x7f6e5cc36840 in /lib/x86_64-linux-gnu/libc.so.6)
Load model failed!

作者: topology    时间: 2021-1-11 15:04
请教是什么问题?环境python:3.6,torch:1.2.0,torchvision:0.4.0,rknn:1.3.3b2,tensorflow:1.11.0
作者: liuyiyiyiyi    时间: 2021-8-30 18:25
topology 发表于 2021-1-11 15:02
rknn.config(channel_mean_value='123.675 116.28 103.53 58.82', reorder_channel='0 1 2')  
Input_Size  ...

你好,这个问题解决了嘛




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3