Toybrick

标题: init_runtime() 失败 [打印本页]

作者: qliu    时间: 2019-11-22 19:53
标题: init_runtime() 失败
在 x86_64 的 Ubuntu 平台下,把 tensorflow 的模型转换成了 rknn 格式。然后在 rk3399pro 上用 load_rknn() 载入,在 init_runtime() 时报错 RKNN_ERR_MODEL_INVALID,不知道是什么意思?rk3399pro 已经刷了最新的 Fedora V1.5 固件。rknn-toolkit 都是用的 1.2.1


D Save log info to: ./verbose.log
P12948 2019-11-22 06:45:45,286 I [enhancement.py:41] loaded rknn model
I npu_transfer_proxy pid: 679, status: sleeping
D NPUTransfer: efuseid = 3399:6c1234ab1cf918b3
D NPUTransfer: Transfer spec = local:transfer_proxy
D NPUTransfer: Transfer interface successfully opened, fd = 4
E RKNNAPI: rknn_init,  msg_load_ack fail, ack = 1(ACK_FAIL), expect 0(ACK_SUCC)!
E RKNNAPI: ==============================================
E RKNNAPI: RKNN VERSION:
E RKNNAPI:   API: 1.2.0 (1190a71 build: 2019-09-25 12:39:26)
E RKNNAPI:   DRV: 0.9.9 (8509ec7 build: 2019-08-05 10:54:34)
E RKNNAPI: ==============================================
D NPUTransfer: Transfer client closed, fd = 4
E Catch exception when init runtime!
E Traceback (most recent call last):
E   File "rknn/api/rknn_base.py", line 788, in rknn.api.rknn_base.RKNNBase.init_runtime
E   File "rknn/api/rknn_runtime.py", line 303, in rknn.api.rknn_runtime.RKNNRuntime.build_graph
E Exception: RKNN init failed. error code: RKNN_ERR_MODEL_INVALID



作者: jefferyzhang    时间: 2019-11-23 16:18
RKNN_ERR_MODEL_INVALID 这是因为你转的模型有问题,无法加载。
转换时候版本和load版本一致么
作者: qliu    时间: 2019-11-25 09:05
jefferyzhang 发表于 2019-11-23 16:18
RKNN_ERR_MODEL_INVALID 这是因为你转的模型有问题,无法加载。
转换时候版本和load版本一致么 ...

都是用 rknn-toolkit 1.2.1 转换的。用 rk3399pro 自己转也不行
作者: feihu_h    时间: 2019-11-25 10:00
qliu 发表于 2019-11-25 09:05
都是用 rknn-toolkit 1.2.1 转换的。用 rk3399pro 自己转也不行

情况类似
作者: jefferyzhang    时间: 2019-11-25 10:31
1. 仿真可以跑么?
2. 平台是toybrick的么?
作者: qliu    时间: 2019-11-25 13:14
jefferyzhang 发表于 2019-11-25 10:31
1. 仿真可以跑么?
2. 平台是toybrick的么?

1. 仿真也跑不了(这个仿真是可以跑 example 里的 ssd.py 的):
Create RKNN model fail!
E Catch exception when init runtime!
E Traceback (most recent call last):
E   File "rknn/api/rknn_base.py", line 788, in rknn.api.rknn_base.RKNNBase.init_runtime
E   File "rknn/api/rknn_runtime.py", line 303, in rknn.api.rknn_runtime.RKNNRuntime.build_graph
E Exception: RKNN init failed. error code: RKNN_ERR_DEVICE_UNAVAILABLE

2. 是 toybrick
作者: jefferyzhang    时间: 2019-11-25 14:13
PC如果仿真跑不了说明转换的模型确实是有问题的,你先关了量化之类的东西试下
作者: qliu    时间: 2019-11-25 14:16
jefferyzhang 发表于 2019-11-25 14:13
PC如果仿真跑不了说明转换的模型确实是有问题的,你先关了量化之类的东西试下 ...

我没有开量化啊。如果是模型有问题,能看到是因为因为什么算子导致的吗?我们可以改网络结构的。
作者: jefferyzhang    时间: 2019-11-25 14:43
qliu 发表于 2019-11-25 14:16
我没有开量化啊。如果是模型有问题,能看到是因为因为什么算子导致的吗?我们可以改网络结构的。 ...

verbose里的log一点都没有么????log完整粘出来看下呀
作者: qliu    时间: 2019-11-25 14:51
jefferyzhang 发表于 2019-11-25 14:43
verbose里的log一点都没有么????log完整粘出来看下呀

verbose 日志见附件

作者: jefferyzhang    时间: 2019-11-25 16:22
你把pb模型和转换代码一起发上来下,我试下
作者: feihu_h    时间: 2019-11-25 16:31
qliu 发表于 2019-11-25 14:51
verbose 日志见附件

不知道楼主,模型中是否用到了,减法,如减去均值这样的操作,如果有的话去掉尽量放到模型外面操作,似乎这里不支持维度的广播机制,去掉后我的问题解决了
作者: qliu    时间: 2019-11-25 19:56
jefferyzhang 发表于 2019-11-25 16:22
你把pb模型和转换代码一起发上来下,我试下

私信你了
作者: qliu    时间: 2019-11-25 20:23
feihu_h 发表于 2019-11-25 16:31
不知道楼主,模型中是否用到了,减法,如减去均值这样的操作,如果有的话去掉尽量放到模型外面操作,似乎 ...

我们有挺多这种操作的。。。这种操作应该挺常见的啊
作者: jefferyzhang    时间: 2019-11-26 08:57
已经提交问题了,等待相关部门答复。

PS:
加减均值那些操作没问题的,NPU端除了神经网络专用IP外,还有通用的运算单元。
作者: feihu_h    时间: 2019-11-26 12:38
jefferyzhang 发表于 2019-11-26 08:57
已经提交问题了,等待相关部门答复。

PS:

我们测试,感觉是有问题的,具体表现是不支持 维度广播  如维度1X5X5X3  - 向量 [2.00,3.2,4.1]  ;好像不支持
作者: jefferyzhang    时间: 2019-11-26 12:41
feihu_h 发表于 2019-11-26 12:38
我们测试,感觉是有问题的,具体表现是不支持 维度广播  如维度1X5X5X3  - 向量 [2.00,3.2,4.1]  ;好像 ...

不支持都当bug处理,模型和转换脚本一起发上来,我找人debug
作者: jefferyzhang    时间: 2019-11-27 08:13
相关部门回复:(新版本已修复)

这个模型在新版本驱动里(v1.3.0)可以跑,但是因为这个网络用了大量的Add/Mean/Pow/Sub/Sqrt/Div等操作,这些操作大部分无法量化,无法跑在专有加速器上,只能跑在通用Shader上,因此性能非常低,建议客户尽量把这种零散的操作放到模型外,或者用常用的tensorflow的op(如pooling)来替换这些Add/Mean/Pow/Sub/Sqrt/Div操作,才可以有效的将NPU的加速单元利用起来。

另外,这些 Add/Mean/Pow/Sub/Sqrt/Div 操作看起来视乎是BN的操作,可以用标准的BN层来代替,我们的硬件是支持标准的BN层的。
作者: 奥古师弟    时间: 2020-7-28 09:09
我也遇到了这个问题,仿真可以正常运行,但是C++接口的调用却失败(版本1.3.0)
作者: wutong    时间: 2022-5-24 15:41
qliu 发表于 2019-11-25 14:16
我没有开量化啊。如果是模型有问题,能看到是因为因为什么算子导致的吗?我们可以改网络结构的。 ...

kunrao困扰我半个月了放弃了想问一下解决了?




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3