rknn-toolkit
rknn-toolkit copied to clipboard
load_onnx failed with models contain ConvTranspose2d
For example:
import torch.nn as nn
class model(nn.Module):
def __init__(self):
super().__init__()
self.net = nn.ConvTranspose2d(4, 2, kernel_size=4, stride=(2,2), padding=1)
def forward(self, x):
return self.net(x)
def main():
x = torch.rand(2,4,16,16)
m = model()
ins = ['in1']
outs = ['out1']
torch.onnx.export(m, x, './tconv.onnx', verbose=True, input_names=ins, output_names=outs)
if __name__ == "__main__":
main()
When I try to load this model into rknn:
(venv) dis@GTX2080TiX2:/workspace/pdcrn$ python
Python 3.5.2 (default, Jan 26 2021, 13:30:48)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from rknn.api import RKNN
>>> r = RKNN()
>>> r.load_onnx('tconv.onnx', inputs=['in1'], input_size_list=[[4,16,16]], outputs=['out1'])
E Calc node ConvTranspose : ConvTranspose_0 output shape fail
E Catch exception when loading onnx model: tconv.onnx!
E Traceback (most recent call last):
E File "rknn/base/RKNNlib/onnx_ir/onnx_numpy_backend/shape_inference.py", line 65, in rknn.base.RKNNlib.onnx_ir.onnx_numpy_backend.shape_inference.infer_shape
E File "rknn/base/RKNNlib/onnx_ir/onnx_numpy_backend/ops/conv_transpose.py", line 109, in rknn.base.RKNNlib.onnx_ir.onnx_numpy_backend.ops.conv_transpose.ConvTranspose
E TypeError: conv2d_transpose() got an unexpected keyword argument 'dilations'
E During handling of the above exception, another exception occurred:
E Traceback (most recent call last):
E File "rknn/base/RKNNlib/app/importer/import_onnx.py", line 118, in rknn.base.RKNNlib.app.importer.import_onnx.Importonnx.run
E File "rknn/base/RKNNlib/converter/convert_onnx.py", line 112, in rknn.base.RKNNlib.converter.convert_onnx.convert_onnx.__init__
E File "rknn/base/RKNNlib/converter/convert_onnx.py", line 1062, in rknn.base.RKNNlib.converter.convert_onnx.convert_onnx._shape_inference
E File "rknn/base/RKNNlib/onnx_ir/onnx_numpy_backend/shape_inference.py", line 70, in rknn.base.RKNNlib.onnx_ir.onnx_numpy_backend.shape_inference.infer_shape
E File "rknn/api/rknn_log.py", line 323, in rknn.api.rknn_log.RKNNLog.e
E ValueError: Calc node ConvTranspose : ConvTranspose_0 output shape fail
E Please feedback the detailed log file <log_feedback_to_the_rknn_toolkit_dev_team.log> to the RKNN Toolkit development team.
E You can also check github issues: https://github.com/rockchip-linux/rknn-toolkit/issues
-1
>>>
My environment: Ubuntu16.04, python 3.5.2 RKNN-Toolkit 1.7.1 pytorch 1.2, torchvision 0.4 tensorflow 1.11 onnx 1.6
我遇到了同样的问题,请问您解决了吗
我遇到了同样的问题,请问您解决了吗
加载onnx模型,好像支持这个操作。https://github.com/rockchip-linux/rknn-toolkit/blob/master/doc/RKNN_OP_Support_V1.7.1.md
我遇到了同样的问题,请问您解决了吗
加载onnx模型,好像支持这个操作。https://github.com/rockchip-linux/rknn-toolkit/blob/master/doc/RKNN_OP_Support_V1.7.1.md
我使用onnx转换的时候报错和题主类似,使用RKNN-Toolkit 1.7.1,以下是log_feedback_to_the_rknn_toolkit_dev_team.log
D Using CPPUTILS: True
I Start importing onnx...
W Call onnx.optimizer.optimize fail, skip optimize
I Current ONNX Model use ir_version 6 opset_version 11
I Call RKNN onnx optimize fail, skip optimize
D Calc tensor Initializer_net.bias (18,)
D Calc tensor Initializer_net.weight (18, 1, 4, 4)
E Calc node ConvTranspose : ConvTranspose_0 output shape fail
E Catch exception when loading onnx model: tconv.onnx!
E Traceback (most recent call last):
E File "rknn/base/RKNNlib/onnx_ir/onnx_numpy_backend/shape_inference.py", line 65, in rknn.base.RKNNlib.onnx_ir.onnx_numpy_backend.shape_inference.infer_shape
E File "rknn/base/RKNNlib/onnx_ir/onnx_numpy_backend/ops/conv_transpose.py", line 83, in rknn.base.RKNNlib.onnx_ir.onnx_numpy_backend.ops.conv_transpose.ConvTranspose
E IndexError: list index out of range
E During handling of the above exception, another exception occurred:
E Traceback (most recent call last):
E File "rknn/base/RKNNlib/app/importer/import_onnx.py", line 118, in rknn.base.RKNNlib.app.importer.import_onnx.Importonnx.run
E File "rknn/base/RKNNlib/converter/convert_onnx.py", line 112, in rknn.base.RKNNlib.converter.convert_onnx.convert_onnx.__init__
E File "rknn/base/RKNNlib/converter/convert_onnx.py", line 1062, in rknn.base.RKNNlib.converter.convert_onnx.convert_onnx._shape_inference
E File "rknn/base/RKNNlib/onnx_ir/onnx_numpy_backend/shape_inference.py", line 70, in rknn.base.RKNNlib.onnx_ir.onnx_numpy_backend.shape_inference.infer_shape
E File "rknn/api/rknn_log.py", line 323, in rknn.api.rknn_log.RKNNLog.e
E ValueError: Calc node ConvTranspose : ConvTranspose_0 output shape fail
E Please feedback the detailed log file <log_feedback_to_the_rknn_toolkit_dev_team.log> to the RKNN Toolkit development team.
E You can also check github issues: https://github.com/rockchip-linux/rknn-toolkit/issues
这是算子参数:
我遇到了同样的问题,请问您解决了吗?E Calc node ConvTranspose : ConvTranspose_146 output shape fail W ----------------Warning(1)---------------- E Catch exception when loading onnx model: ../model/model_modified.onnx! E Traceback (most recent call last): E File "rknn/base/RKNNlib/onnx_ir/onnx_numpy_backend/shape_inference.py", line 65, in rknn.base.RKNNlib.onnx_ir.onnx_numpy_backend.shape_inference.infer_shape E File "rknn/base/RKNNlib/onnx_ir/onnx_numpy_backend/ops/conv_transpose.py", line 109, in rknn.base.RKNNlib.onnx_ir.onnx_numpy_backend.ops.conv_transpose.ConvTranspose E TypeError: conv2d_transpose() got an unexpected keyword argument 'dilations' E During handling of the above exception, another exception occurred: E Traceback (most recent call last): E File "rknn/api/rknn_base.py", line 292, in rknn.api.rknn_base.RKNNBase.load_onnx E File "rknn/base/RKNNlib/RK_nn.py", line 141, in rknn.base.RKNNlib.RK_nn.RKnn.load_onnx E File "rknn/base/RKNNlib/app/importer/import_onnx.py", line 118, in rknn.base.RKNNlib.app.importer.import_onnx.Importonnx.run E File "rknn/base/RKNNlib/converter/convert_onnx.py", line 94, in rknn.base.RKNNlib.converter.convert_onnx.convert_onnx.init E File "rknn/base/RKNNlib/converter/convert_onnx.py", line 984, in rknn.base.RKNNlib.converter.convert_onnx.convert_onnx._shape_inference E File "rknn/base/RKNNlib/onnx_ir/onnx_numpy_backend/shape_inference.py", line 70, in rknn.base.RKNNlib.onnx_ir.onnx_numpy_backend.shape_inference.infer_shape E File "rknn/api/rknn_log.py", line 312, in rknn.api.rknn_log.RKNNLog.e E ValueError: Calc node ConvTranspose : ConvTranspose_146 output shape fail Load model failed! 我用的rknn-toolkit-1.7.0,手册里写的支持ConvTranspose 算子,但是会报错