Toybrick

请教版主 caffe 模型转换开启量化转换失败

ryanzx

注册会员

积分
104
楼主
发表于 2020-4-23 16:30:15    查看: 9419|回复: 8 | [复制链接]    打印 | 只看该作者
本帖最后由 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')


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

jefferyzhang

版主

积分
13580
沙发
发表于 2020-4-23 16:33:25 | 只看该作者
killed 你可以看 dmesg的log,这个八成是low memory kill,
就是没内存了。。
转换大模型建议在pc上搞,板子就2g内存,转换慢死了
回复

使用道具 举报

ryanzx

注册会员

积分
104
板凳
 楼主| 发表于 2020-4-23 16:56:09 | 只看该作者
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

版主

积分
13580
地板
发表于 2020-4-23 17:06:26 | 只看该作者
核对下API/DRV版本号是否匹配
回复

使用道具 举报

ryanzx

注册会员

积分
104
5#
 楼主| 发表于 2020-4-23 17:22:38 | 只看该作者
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

版主

积分
13580
6#
发表于 2020-4-23 17:35:47 | 只看该作者
PC? 你是跑仿真?
仿真如果会出错,说明你模型肯定是错的。。
回复

使用道具 举报

ryanzx

注册会员

积分
104
7#
 楼主| 发表于 2020-4-23 17:53:00 | 只看该作者
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

版主

积分
13580
8#
发表于 2020-4-23 17:59:20 | 只看该作者
你的模型是运行在pc仿真上报错?还是拷贝到板子上运行报错?还是在pc上连接3399pro运行报错?
还是全报错。。。
回复

使用道具 举报

ryanzx

注册会员

积分
104
9#
 楼主| 发表于 2020-4-24 08:46:25 | 只看该作者
jefferyzhang 发表于 2020-4-23 17:59
你的模型是运行在pc仿真上报错?还是拷贝到板子上运行报错?还是在pc上连接3399pro运行报错?
还是全报错。 ...

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

使用道具 举报

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

本版积分规则

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


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