airockchip / rknn-toolkit2

Other
996 stars 104 forks source link

onnx模型转rknn模型后尺寸异常 #162

Open 770768405 opened 2 months ago

770768405 commented 2 months ago

使用自带的工具转换模型

python -m rknn.api.rknn_convert -t rk3588 -i ./model_config.yml -o ./

image

配置文件中尺寸设置为30004096时,转换出的模型为167M,尺寸设置为30004092时,转换出的模型为26M 30004092的模型能正常运行,而30004096的模型会出错,内存分配有问题,为什么会这样?

image

yuyun2000 commented 2 months ago

你onnx模型的输入shape是什么?

770768405 commented 2 months ago

你onnx模型的输入shape是什么?

image onnx模型是动态输入的,我试着直接在生成onnx模型时,直接设置3000*4096,但还是出现了一样的问题

yuyun2000 commented 2 months ago

你这个工具好陌生啊,是rk2?

770768405 commented 2 months ago

是的,我也直接用python脚本转过,还是出现了一样的问题 image

yuyun2000 commented 2 months ago

我怎么感觉这么奇怪呢?你这是在哪转的模型? toolkit只有x86的包,你咋在板子上直接转的

770768405 commented 2 months ago

我是在虚拟机上的ubuntu中转的,用的rknn-toolkit2这个包,verson=2.2

yuyun2000 commented 2 months ago

所以你问题中的第二张报错图,是虚拟机里得报错?

770768405 commented 2 months ago

不是,是我用生成的模型部署到板子上运行报的错

yuyun2000 commented 2 months ago

这个可以先去看一下算子列表,有可能4096超限制了但是4092没有超,也有可能是版本bug换低版本再试一下。用perf接口可以看每层的输入输出

770768405 commented 2 months ago

我不知道如何看超还是没超,你能帮我看看嘛 这是4096的: image image image 这是4092的: image image

另外换低版本的是指的toolkit2嘛,我之前就是在2.1版本上遇到了这个问题,才升级到2.2版本的,如果需要换低版本,换那个比较稳定

yuyun2000 commented 2 months ago

看不出来,等大佬吧,或者用1.5版本试试

770768405 commented 2 months ago

好吧