Toybrick

标题: 请教版主 caffe 模型转换开启量化转换失败 [打印本页]

作者: ryanzx    时间: 2020-4-23 16:30
标题: 请教版主 caffe 模型转换开启量化转换失败
本帖最后由 ryanzx 于 2020-4-23 16:31 编辑

开发板刷新到Debian10.
RKNN版本1.3.0
使用py脚本转换模型。在关闭量化参数的时候转化成功,并能正常运行RKNN进行前端推理
在以上的基础上脚本开启量化 在板上build 出现 "killed"的提示。同时想请教下输出的tensorflow的警告是否是正常现象?
# Build model
    print('--> Building model')
    ret = rknn.build(do_quantization=True, dataset='./model/image/recog2_list.txt')



作者: jefferyzhang    时间: 2020-4-23 16:33
killed 你可以看 dmesg的log,这个八成是low memory kill,
就是没内存了。。
转换大模型建议在pc上搞,板子就2g内存,转换慢死了
作者: ryanzx    时间: 2020-4-23 16:56
jefferyzhang 发表于 2020-4-23 16:33
killed 你可以看 dmesg的log,这个八成是low memory kill,
就是没内存了。。
转换大模型建议在pc上搞,板 ...

查看了下 log 的确是内存不够 PC上我按照《Rockchip_Quick_Start_RKNN_Toolkit_V1.3.0.pdf》上{Ubuntu平台快速上手}章节 建立了RKNN环境并运行了可视化工具。按照非量化参数 转换了 一个RKNN模型 。但是该模型放到debian10下进行推理 在init_runtime的时候fail
作者: jefferyzhang    时间: 2020-4-23 17:06
核对下API/DRV版本号是否匹配
作者: ryanzx    时间: 2020-4-23 17:22
jefferyzhang 发表于 2020-4-23 17:06
核对下API/DRV版本号是否匹配

请教下如何查看PC端的RKNN_API 版本?我是通过rknn-toolkit-V1.3.0/packages/rknn_toolkit-1.3.0-cp35-cp35m-linux_x86_64.whl 这个轮子安装的。我参试用py脚本去获取版本信息出现如下error
Type "help", "copyright", "credits" or "license" for more information.
>>> from rknn.api import RKNN
>>> rknn = RKNN()
>>> ret = rknn.load_rknn(path='./mobilenet_v2.rknn')
>>> rknn.init_runtime()
0
>>> rknn.get_sdk_version()
E Catch exception when get sdk version
E Traceback (most recent call last):
E   File "/usr/local/lib/python3.5/dist-packages/rknn/api/rknn.py", line 487, in get_sdk_version
E     sdk_version = self.rknn_base.get_sdk_version()
E   File "rknn/api/rknn_base.py", line 1060, in rknn.api.rknn_base.RKNNBase.get_sdk_version
E   File "rknn/api/rknn_runtime.py", line 664, in rknn.api.rknn_runtime.RKNNRuntime.get_sdk_version
E Exception: Target hardware platform need be pointed before get sdk version.
>>>
作者: jefferyzhang    时间: 2020-4-23 17:35
PC? 你是跑仿真?
仿真如果会出错,说明你模型肯定是错的。。
作者: ryanzx    时间: 2020-4-23 17:53
jefferyzhang 发表于 2020-4-23 17:35
PC? 你是跑仿真?
仿真如果会出错,说明你模型肯定是错的。。

我没有太理解您的意思。
按照你上面的回复 核对API版本的意思 我理解是 PC上build出来的RKNN模型无法在pro上运行,有可能是因为PC上按照的rknn-api的版本和pro上的没有匹配。
我上面的脚本运行时希望通过rknn.get_sdk_version 这个接口可以查看下PC上的rknn版本。因为Pro板子上代码运行正常的时候时可以看到API版本的
D RKNNAPI: ==============================================
D RKNNAPI: RKNN VERSION:
D RKNNAPI:   API: 1.3.0 (c5654ea build: 2019-12-25 12:40:55)
D RKNNAPI:   DRV: 1.3.0 (c4f8c23 build: 2019-11-25 10:39:29)
D RKNNAPI: ==============================================
作者: jefferyzhang    时间: 2020-4-23 17:59
你的模型是运行在pc仿真上报错?还是拷贝到板子上运行报错?还是在pc上连接3399pro运行报错?
还是全报错。。。
作者: ryanzx    时间: 2020-4-24 08:46
jefferyzhang 发表于 2020-4-23 17:59
你的模型是运行在pc仿真上报错?还是拷贝到板子上运行报错?还是在pc上连接3399pro运行报错?
还是全报错。 ...

没有在PC上连3399Pro。 希望实现的环境时 PC上转模型 放到3399Pro上运行。但是PC转的模型拷贝到板子上运行出错。所以就直接在板子上转换结果就出现板子转换内存不够的情况。 上面的PY脚本get_sdk_version我时希望能够在PC 上查看下PC版本的rknn的版本。




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