rknn_model_zoo 模型转换失败

  • 您好,根据log的错误提示“Model file ../model/yolov5s.onnx not exists!” 应该是转换命令参数错了或者文件不存在,在rknn_model_zoo/examples/yolov5/model下有一个download_model.sh 脚本会获取yolov5s_relu.onnx, 模型传入的参数应该是 ../model/yolov5s_relu.onnx
  • Crocodile wrote: 2024-11-22 1:09 您好,根据log的错误提示“Model file ../model/yolov5s.onnx not exists!” 应该是转换命令参数错了或者文件不存在,在rknn_model_zoo/examples/yolov5/model下有一个download_model.sh 脚本会获取yolov5s_relu.onnx, 模型传入的参数应该是 ../model/yolov5s_relu.onnx
    你好,这段问题已经解决,真正的问题出在这里:

    Code: Select all

    (RKNN-Toolkit2) ubuntu@ubuntu:~/Projects/rknn_model_zoo/examples/yolov5/python$ python3 convert.py ../model/yolov5s_relu.onnx rv1106
    W __init__: rknn-toolkit2 version: 1.6.0+81f21f4d
    --> Config model
    done
    --> Loading model
    W load_onnx: It is recommended onnx opset 19, but your onnx model opset is 12!
    W load_onnx: Model converted from pytorch, 'opset_version' should be set 19 in torch.onnx.export for successful convert!
    Loading :   0%|                                                             | 0/125 [00:00<?, ?Loading : 100%|█████████████████████████████████████████████████| 125/125 [00:00<00:00, 3534.75it/s]
    done
    --> Building model
    Illegal instruction (core dumped)
    我重新安装了一台虚拟机,以2.30版本的rknn-toolkit2运行也是同样的地方同样的错误
  • 我这边是wsl2转换的log信息如下

    Code: Select all

    (RKNN-Toolkit2) ➜  pythonpython3 convert.py ../model/yolov5s_relu.onnx rv1106
    I rknn-toolkit2 version: 2.0.0b0+9bab5682
    --> Config model
    done
    --> Loading model
    I It is recommended onnx opset 19, but your onnx model opset is 12!
    I Model converted from pytorch, 'opset_version' should be set 19 in torch.onnx.export for successful convert!
    I Loading : 100%|██████████████████████████████████████████████| 125/125 [00:00<00:00, 14088.46it/s]
    done
    --> Building model
    I GraphPreparing : 100%|████████████████████████████████████████| 149/149 [00:00<00:00, 8050.07it/s]
    I Quantizating : 100%|████████████████████████████████████████████| 149/149 [00:04<00:00, 30.34it/s]
    W build: The default input dtype of 'images' is changed from 'float32' to 'int8' in rknn model for performance!
                           Please take care of this change when deploy rknn model with Runtime API!
    W build: The default output dtype of 'output0' is changed from 'float32' to 'int8' in rknn model for performance!
                          Please take care of this change when deploy rknn model with Runtime API!
    W build: The default output dtype of '286' is changed from 'float32' to 'int8' in rknn model for performance!
                          Please take care of this change when deploy rknn model with Runtime API!
    W build: The default output dtype of '288' is changed from 'float32' to 'int8' in rknn model for performance!
                          Please take care of this change when deploy rknn model with Runtime API!
    I rknn building ...
    I rknn buiding done.
    done
    --> Export rknn model
    done
    
    如果确定没有修改过convert.py 程序,yolov5s_relu.onnx也是通过 download_model.sh 获取的,那么出现该问题的解决方法只能向Rockchip求助,我们也没有相关的源码无法知道内部细节,您可以到https://github.com/airockchip/rknn_model_zoo 提交issue
  • 遇到同样的问题,原因是老的CPU没有AVX/AVX2指令, libcpputils2.so编译的机器支持这些指令,因此需要提供non-avx/avx2版本的libcpputils2.so来解决.
    Core was generated by `python3 convert.py ../model/yolo11n.onnx rv1106 i8'.
    Program terminated with signal SIGILL, Illegal instruction.
    #0 0x00007f6321d655c6 in sum_p_n () from xxxx/python3.6/site-packages/rknn/api/lib/linux-x86_64/libcpputils2.so
    [Current thread is 1 (Thread 0x7f635a4e1700 (LWP 606))]
    (gdb) x/i $pc
    => 0x7f6321d655c6 <sum_p_n+22>: vxorps %xmm4,%xmm4,%xmm4 (vxorps is an AVX instruction )
  • 使用Intel SDE仿真模拟可以解决,就是速度比较慢。