Toybrick

算法模型的输出不对

slkjai

注册会员

积分
60
楼主
发表于 2019-11-11 15:13:19    查看: 10640|回复: 9 | [复制链接]    打印 | 只看该作者
本帖最后由 slkjai 于 2019-11-11 15:19 编辑

模型转换的时候 只有 Eltwise 是 not extends, 其他的都没有报错,但是模型的输出结果却差异很大
试过更改输入输出类型,都不行
更改的是 mobilenet_v2 的 python 脚本,我们对图片进行了预处理,所以在模型归一化处理中,传入的是 rknn.config(channel_mean_value='0.0 0.0 0.0 1.0', reorder_channel='0 1 2')
请问,我可以从什么方面进行问题查找
回复

使用道具 举报

jefferyzhang

版主

积分
13580
沙发
发表于 2019-11-11 15:33:55 | 只看该作者
先修改output节点逐步往前,定位下转换前后出问题的层
回复

使用道具 举报

slkjai

注册会员

积分
60
板凳
 楼主| 发表于 2019-11-11 17:19:41 | 只看该作者
本帖最后由 slkjai 于 2019-11-11 19:04 编辑

问题解决
回复

使用道具 举报

slkjai

注册会员

积分
60
地板
 楼主| 发表于 2019-11-12 10:26:01 | 只看该作者
jefferyzhang 发表于 2019-11-11 15:33
先修改output节点逐步往前,定位下转换前后出问题的层

昨天我在Linux服务器上结果是对的,但是今天早上我把代码和python脚本放到开发板上,结果差异很大
是需要在开发板上做什么设置吗?
回复

使用道具 举报

jefferyzhang

版主

积分
13580
5#
发表于 2019-11-12 10:43:35 | 只看该作者
不明白你意思,服务器上你用rknn做的inference仿真么?
仿真结果不可能和开发版实际运行是不一样的,如果存在这问题的话,就要看下开发版的rknntoolkit版本和服务器是否一致
回复

使用道具 举报

slkjai

注册会员

积分
60
6#
 楼主| 发表于 2019-11-12 17:56:22 | 只看该作者
jefferyzhang 发表于 2019-11-12 10:43
不明白你意思,服务器上你用rknn做的inference仿真么?
仿真结果不可能和开发版实际运行是不一样的,如果存 ...

我把toolkit的版本设置为一致的,结果没问题了,我还有一个问题。
在移植 rknn api 的时候因为图片是预处理成float32之后输入模型的,所以我把 输入改成了
inputs[0].pass_through = false;
inputs[0].type = RKNN_TENSOR_FLOAT32;
inputs[0].fmt = RKNN_TENSOR_NCHW;
但是结果又不一样了,请问输入还需要做什么设置吗?
版本是:
rknn-api-0.9.9-1.rockchip.fc28.aarch64
npuservice-1.0.5-1.rockchip.fc28.aarch64
回复

使用道具 举报

jefferyzhang

版主

积分
13580
7#
发表于 2019-11-12 18:26:05 | 只看该作者
转模型时候有参数设置输入和输出,c api这里是设置如何解析你传入的数据,c里数据是内存排开的,你要给的是int8数据,这里又写float32,读内存解析不就完全错了
回复

使用道具 举报

slkjai

注册会员

积分
60
8#
 楼主| 发表于 2019-11-12 19:27:23 | 只看该作者
jefferyzhang 发表于 2019-11-12 18:26
转模型时候有参数设置输入和输出,c api这里是设置如何解析你传入的数据,c里数据是内存排开的,你要给的是 ...

模型的输入数据就是float32, 我在python脚本中传入的是float32,所以在c api中传入的是float32, 并没有传入 int8
转换模型的时候,设置是 rknn.config(channel_mean_value='0.0 0.0 0.0 1.0', dtype='float32')
回复

使用道具 举报

yangting0501

新手上路

积分
25
9#
发表于 2019-11-15 13:27:24 | 只看该作者

请问你怎么解决的
回复

使用道具 举报

slkjai

注册会员

积分
60
10#
 楼主| 发表于 2019-11-15 14:15:04 | 只看该作者
c代码中设置 inputs[0].pass_through = false;
    inputs[0].type = RKNN_TENSOR_FLOAT32;
    inputs[0].fmt = RKNN_TENSOR_NHWC;
回复

使用道具 举报

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

本版积分规则

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


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