Toybrick

onnx转rknn成功,build成功,init_runtime失败

SmartSmallBoy

注册会员

积分
66
楼主
发表于 2021-10-8 20:06:17    查看: 5829|回复: 9 | [复制链接]    打印 | 只看该作者
搞了个人脸检测的模型,pth转onnx后测试输出没问题,转rknn也没报错,但是在init_runtime时出错了说维度不匹配,不知道啥情况

E [rknn_CalcReshapeTensor:1397]Cannot calculate the reshape tensor 25600 to 25584.
E [setup_node:448]Setup node[136] RESHAPE fail
Create rknn graph fail!
I [remove_client_ops:5508]remove_client_ops num=0
I [remove_client_ops:5519]remove_client_ops finish
Create RKNN model fail, error=-6
E Catch exception when init runtime!
E Traceback (most recent call last):
E   File "rknn/api/rknn_base.py", line 884, in rknn.api.rknn_base.RKNNBase.init_runtime
E   File "rknn/api/rknn_runtime.py", line 341, in rknn.api.rknn_runtime.RKNNRuntime.build_graph
E Exception: RKNN init failed. error code: RKNN_ERR_MODEL_INVALID
-1


回复

使用道具 举报

SmartSmallBoy

注册会员

积分
66
沙发
 楼主| 发表于 2021-10-8 20:26:12 | 只看该作者
仔细看了rknn.build的输出日志,
D Process Reshape_Reshape_199_52_RKNN_mark_perm_211 ...
D RKNN output shape(permute): (1 64 20 20)
D Tensor @Reshape_Reshape_199_52_RKNN_mark_perm_211ut0 type: float32
D Process Reshape_Reshape_199_52 ...
D RKNN output shape(reshape): (3 16 533)
D Tensor @Reshape_Reshape_199_52ut0 type: float32
D Process InstanceNormalization_InstanceNormalization_202_49 ...
D RKNN output shape(instancenormalize): (3 16 533)
这个地方输入是1*64*20*20,输出是3*16*533,?????????什么情况
回复

使用道具 举报

SmartSmallBoy

注册会员

积分
66
板凳
 楼主| 发表于 2021-10-8 20:29:31 | 只看该作者
我的原模型这里是
Reshape
name:Reshape_199
data
name: 455
type: float32[1,64,20,20]
shape
name: 355
kind: Initializer
type: int64[3]
[
    0,
    16,
    -1
]
reshaped
name: 457
type: float32[1,16,1600]
这里输入是1*64*20*20,输出是1*16*1600,什么情况啊,模型里有很多个这样的reshape,前面的都是正常转成了1*16*1600,怎么到199节点这里就转成了3*16*533了啊
回复

使用道具 举报

SmartSmallBoy

注册会员

积分
66
地板
 楼主| 发表于 2021-10-8 20:44:20 | 只看该作者
通过查看量化后生成的的json文件,
"Reshape_Reshape_199_52": {
            "name": "Reshape_Reshape_199",
            "op": "reshape",
            "parameters": {
                "shape": [
                    3,
                    16,
                    -1
                ]
            },
            "inputs": [
                "@Reshape_Reshape_199_52_acuity_mark_perm_211ut0"
            ],
            "outputs": [
                "out0"
            ]
        },
这里的parameters:是3,16,-1
网络里有个188节点和199在原onnx模型的参数是一样的,这里188节点转换后的parameters是正常的1,16,-1
"Reshape_Reshape_188_74": {
            "name": "Reshape_Reshape_188",
            "op": "reshape",
            "parameters": {
                "shape": [
                    1,
                    16,
                    -1
                ]
            },
回复

使用道具 举报

SmartSmallBoy

注册会员

积分
66
5#
 楼主| 发表于 2021-10-8 20:49:13 | 只看该作者
能不能把json文件里的199节点强行改成1,16,-1然后用混合量化第一步生成的权重+修改的json文件生成模型啊
回复

使用道具 举报

SmartSmallBoy

注册会员

积分
66
6#
 楼主| 发表于 2021-10-8 20:56:05 | 只看该作者
253节点也是一样,前面都好好的shape(1,16,-1)
到了253,一样的参数,被转成了(6,16,-1)
回复

使用道具 举报

goodstudy

注册会员

积分
168
7#
发表于 2021-10-9 16:22:57 | 只看该作者
好像是驱动问题,我之前也遇到过,
回复

使用道具 举报

SmartSmallBoy

注册会员

积分
66
8#
 楼主| 发表于 2021-10-9 19:03:15 | 只看该作者
goodstudy 发表于 2021-10-9 16:22
好像是驱动问题,我之前也遇到过,

老哥,你怎么解决的呀
回复

使用道具 举报

goodstudy

注册会员

积分
168
9#
发表于 2021-10-11 11:48:10 | 只看该作者
SmartSmallBoy 发表于 2021-10-9 19:03
老哥,你怎么解决的呀

升级npu的驱动
回复

使用道具 举报

SmartSmallBoy

注册会员

积分
66
10#
 楼主| 发表于 2021-10-11 13:17:19 | 只看该作者

我这npu驱动已经最新了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表