Toybrick

标题: rknn_init, recv(MsgLoadAck) fail, -9(ERROR_PIPE) != 368! [打印本页]

作者: alpcool    时间: 2019-11-26 16:15
标题: rknn_init, recv(MsgLoadAck) fail, -9(ERROR_PIPE) != 368!
初始化模型报错,大佬们,麻烦看一下这个是什么问题,固件和toolkit都已经使用最新版本rknn_init,  recv(MsgLoadAck) fail, -9(ERROR_PIPE) != 368!
rknn_init fail! ret=-3
rknn-toolkit:1.2.1
tensorflow:1.12.0
固件版本:V1.5
API: 1.2.0 (db63ace build: 2019-09-17 14:23:55)


DRV: 0.9.9 (8509ec7 build: 2019-08-05 10:54:34)

作者: jefferyzhang    时间: 2019-11-26 16:31
本地仿真正常么?
作者: alpcool    时间: 2019-11-26 16:40
jefferyzhang 发表于 2019-11-26 16:31
本地仿真正常么?

没有跑过,这个模型,我之前使用预装都固件(应该是V1.2)是能初始化成功的,只是推理异常慢,而且结果不正确,所以我刷了1.5的固件,结果出了这个问题

我使用的是RK3399Pro,在android下通过JNI调用RKNN API来使用的
作者: jefferyzhang    时间: 2019-11-26 16:57
是不是转换模型的rknn toolkit和本地api版本不匹配。
如果你换了新固件,toolkit也要用新的来转rknn
作者: alpcool    时间: 2019-11-26 17:18
jefferyzhang 发表于 2019-11-26 16:57
是不是转换模型的rknn toolkit和本地api版本不匹配。
如果你换了新固件,toolkit也要用新的来转rknn ...

模型是用rknn-toolkit1.2.1转换生成的,在2个固件上跑的是同一个模型文件,api也都是是1.2.0,区别是2个固件的DRV版本不一样,之前固件是0.9.4,V1.5的固件是0.9.9

当前的状态就是,V1.5的固件,使用rknn-toolkit1.2.1转换的模型,使用1.2.0的API
作者: jefferyzhang    时间: 2019-11-26 17:23
toolkit 1.2.1 必须搭配 0.9.9或者1.2.0的Drv
如果0.9.9不能用,你应该是踩到坑了,可以把模型和转换代码一起发给我们,我找人debug下。

不过建议你本地仿真也跑一下,预防1.2.1转出来模型就有问题。
作者: kaishi    时间: 2019-12-1 15:05
My platform has the same issue sometimes. It doesn't happen all the time.
Below is the printout during the run:

D RKNNAPI: ==============================================
D RKNNAPI: RKNN VERSION:
D RKNNAPI:   API: 1.2.0 (db63ace build: 2019-09-17 14:23:41)
D RKNNAPI:   DRV: 0.91 (237fb1a build: 2018-12-29 16:46:59)
D RKNNAPI: ==============================================

Is DRV-version 0.91 too old? How do I update new DRV?


作者: alpcool    时间: 2019-12-4 10:32
jefferyzhang 发表于 2019-11-26 17:23
toolkit 1.2.1 必须搭配 0.9.9或者1.2.0的Drv
如果0.9.9不能用,你应该是踩到坑了,可以把模型和转换代码一 ...

模型不太方便提供,这个是转换的代码:

  1. from rknn.api import RKNN

  2. rknn = RKNN(verbose=True)
  3. #

  4. TF_model = rknn.load_tensorflow(
  5.     tf_pb="./tf_models/model.pb",
  6.     inputs= ['Placeholder'],
  7.     outputs= ['output_node'],
  8.     input_size_list=[[1,256,1]]
  9.     )

  10. ret = rknn.build(do_quantization=False, pre_compile=False)

  11. ret = rknn.export_rknn(export_path = './rknn/test_one.rknn')
复制代码

作者: alpcool    时间: 2019-12-4 10:33
kaishi 发表于 2019-12-1 15:05
My platform has the same issue sometimes. It doesn't happen all the time.
Below is the printout duri ...

刷入最新的固件DRV就能升级到0.9.9了
作者: alpcool    时间: 2019-12-24 11:51
本帖最后由 alpcool 于 2019-12-24 11:57 编辑
jefferyzhang 发表于 2019-11-26 17:23
toolkit 1.2.1 必须搭配 0.9.9或者1.2.0的Drv
如果0.9.9不能用,你应该是踩到坑了,可以把模型和转换代码一 ...

这是模型文件和转换代码,麻烦看一下
另外,仿真环境下初始化也报错:
  1. /root/anaconda3/envs/tensorflow/lib/python3.6/site-packages/onnx_tf/common/__init__.py:87: UserWarning: FrontendHandler.get_outputs_names is deprecated. It will be removed in future release.. Use node.outputs instead.
  2.   warnings.warn(message)
  3. W Verbose file path is invalid, debug info will not dump to file.
  4. -->loading model
  5. load model done:0
  6. --> init runtime environment
  7. I When we run model on simulator, we do not need set perf_debug to get layer performance.
  8. #productname=VSI SIMULATOR, pid=0x82
  9. Created VX Thread: 50aea700
  10. Segmentation fault (core dumped)
复制代码








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