rockchip-linux / rknn-toolkit

BSD 3-Clause "New" or "Revised" License
830 stars 175 forks source link

处理slice算子时工具出错 #415

Open casar-lv opened 1 year ago

casar-lv commented 1 year ago

yolov8s-pose.rknn.load.txt 以上为日志文件。

我在使用rknntoolkit1.7.5的可视化工具,将yolov8n-pose(opset=12)的onnx转化为rknn时,遇到了报错如下: Calc tensor Mul_/model.22/Mul_output0 (1,) D Calc tensor Mul/model.22/Mul_1_output_0 (1,) E Calc node Slice : /model.22/Slice output shape fail E Catch exception when loading onnx model: /home/lv/Downloads/yolov8n-pose.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/slice.py", line 41, in rknn.base.RKNNlib.onnx_ir.onnx_numpy_backend.ops.slice.Slice E File "", line 1, in E TypeError: slice indices must be integers or None or have an index method 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 120, in rknn.base.RKNNlib.app.importer.import_onnx.Importonnx.run E File "rknn/base/RKNNlib/converter/convert_onnx.py", line 123, in rknn.base.RKNNlib.converter.convert_onnx.convert_onnx.init E File "rknn/base/RKNNlib/converter/convert_onnx.py", line 1187, 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 Slice : /model.22/Slice output shape fail E Please feedback the detailed log file to the RKNN Toolkit development team. E You can also check github issues: https://github.com/rockchip-linux/rknn-toolkit/issues '/tmp/0/RKNN_toolkit.log' and '/tmp/0/RKNN_toolkit.log' are the same file

mengxizeng commented 1 year ago

我用yolov8-seg也遇到这个问题了。

mengxizeng commented 1 year ago

导出onnx模型时,选择opset=10。然后再转换rknn模型,slice算子不报错了,可以成功转换。

lazylazypig commented 2 months ago

@mengxizeng rknn-toolkit 1.7.3您用过么?改为opset=10后,倒是不报slice算子的错误了,出了split的错误: Can not find rknn layer for Tensor [Split_Split_225:out1]. rknn这玩意感觉就是个半成品,问个啥问题官方屁都不放一个

mengxizeng commented 2 months ago

@mengxizeng rknn-toolkit 1.7.3您用过么?改为opset=10后,倒是不报slice算子的错误了,出了split的错误: Can not find rknn layer for Tensor [Split_Split_225:out1]. rknn这玩意感觉就是个半成品,问个啥问题官方屁都不放一个

我是用的1.7.1,转换yolov8seg模型后,在rv1126可以正常运行。