Toybrick

标题: 算法模型的输出不对 [打印本页]

作者: slkjai    时间: 2019-11-11 15:13
标题: 算法模型的输出不对
本帖最后由 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    时间: 2019-11-11 15:33
先修改output节点逐步往前,定位下转换前后出问题的层
作者: slkjai    时间: 2019-11-11 17:19
本帖最后由 slkjai 于 2019-11-11 19:04 编辑

问题解决
作者: slkjai    时间: 2019-11-12 10:26
jefferyzhang 发表于 2019-11-11 15:33
先修改output节点逐步往前,定位下转换前后出问题的层

昨天我在Linux服务器上结果是对的,但是今天早上我把代码和python脚本放到开发板上,结果差异很大
是需要在开发板上做什么设置吗?
作者: jefferyzhang    时间: 2019-11-12 10:43
不明白你意思,服务器上你用rknn做的inference仿真么?
仿真结果不可能和开发版实际运行是不一样的,如果存在这问题的话,就要看下开发版的rknntoolkit版本和服务器是否一致
作者: slkjai    时间: 2019-11-12 17:56
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    时间: 2019-11-12 18:26
转模型时候有参数设置输入和输出,c api这里是设置如何解析你传入的数据,c里数据是内存排开的,你要给的是int8数据,这里又写float32,读内存解析不就完全错了
作者: slkjai    时间: 2019-11-12 19:27
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    时间: 2019-11-15 13:27
slkjai 发表于 2019-11-11 17:19
问题解决

请问你怎么解决的
作者: slkjai    时间: 2019-11-15 14:15
c代码中设置 inputs[0].pass_through = false;
    inputs[0].type = RKNN_TENSOR_FLOAT32;
    inputs[0].fmt = RKNN_TENSOR_NHWC;




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