Toybrick

标题: caffe转化模型后输出shape不对 [打印本页]

作者: linpanda    时间: 2019-9-4 09:11
标题: caffe转化模型后输出shape不对
系统 Ubuntu16.04
版本 rknn-toolkit-V1.10
我的网络时全有卷积层构成的,最后输出应该是NxNx4和NxNx2两个矩阵,但是不管输入多大图片都是只有1x1x4和1x1x2的结果。请问问题出在哪里?Caffe时使用时正常的。



作者: jefferyzhang    时间: 2019-9-4 11:02
rknn输出节点name是否填对,输出结果的总维数是不会出错的。
作者: linpanda    时间: 2019-9-4 11:15
额。我用的toolkit哪里设置输出节点?
另外我做了些测试把原caffe框架里的输入大小进行了改变,然后再转换再用rknn进行推理,结果不管输入的图片是多大的size,最后结果的shape都是caffe框架里定义的输入大小推理得的结果大小
作者: linpanda    时间: 2019-9-4 11:22
jefferyzhang 发表于 2019-9-4 11:02
rknn输出节点name是否填对,输出结果的总维数是不会出错的。

额。我用的toolkit哪里设置输出节点?
另外我做了些测试把原caffe框架里的输入大小进行了改变,然后再转换再用rknn进行推理,结果不管输入的图片是多大的size,最后结果的shape都是caffe框架里定义的输入大小推理得的结果大小
作者: jefferyzhang    时间: 2019-9-4 14:28
linpanda 发表于 2019-9-4 11:22
额。我用的toolkit哪里设置输出节点?
另外我做了些测试把原caffe框架里的输入大小进行了改变,然后再转 ...

那不是对的么?
作者: linpanda    时间: 2019-9-9 09:34
jefferyzhang 发表于 2019-9-4 14:28
那不是对的么?

嗯嗯。。这个问题是理解了,,另一个问题就是如果不对模型进行量化调整的话,输出结果应该是会跟原模型一样的吧?
作者: jefferyzhang    时间: 2019-9-9 10:01
linpanda 发表于 2019-9-9 09:34
嗯嗯。。这个问题是理解了,,另一个问题就是如果不对模型进行量化调整的话,输出结果应该是会跟原模型一 ...

是的,理论上是这样的,但是我们现在rknn转换时候强制会用FP16,如果你模型是FP32的层,会有一点精度损失,至于如何强制rknn使用FP32,这个我已经跟相关部门提过需求了,等他们回应。

1. Caffe FP16 ->  RKNN FP16 结果一定是一样的
2. Caffe FP32 -> RKNN FP16 结果小数点后会有一点点精度区别
3. Caffe FP16/32 -> RKNN 量化 INT8 如果量化好的话,结果是和FP16非常接近的,不会到值完全不一样的地步

然后RKNN是固定输入尺寸的,所以模型如果是允许变尺寸输入,转换RKNN时候是必须固定成一个尺寸的。
作者: linpanda    时间: 2019-9-9 10:14
jefferyzhang 发表于 2019-9-9 10:01
是的,理论上是这样的,但是我们现在rknn转换时候强制会用FP16,如果你模型是FP32的层,会有一点精度损失 ...

了解了,感谢解答!!
作者: linpanda    时间: 2019-9-10 15:50
jefferyzhang 发表于 2019-9-9 10:01
是的,理论上是这样的,但是我们现在rknn转换时候强制会用FP16,如果你模型是FP32的层,会有一点精度损失 ...

您好,我现在的问题就是rknn上跑的模型跟caffe的结果完全不一样额。没有进行量化
我是在Linux下的模拟环境跑的,暂时还没有到板子上,会跟这个有关系吗?
这个caffe FP16/32怎么判别呢?
作者: jefferyzhang    时间: 2019-9-11 08:19
linpanda 发表于 2019-9-10 15:50
您好,我现在的问题就是rknn上跑的模型跟caffe的结果完全不一样额。没有进行量化
我是在Linux下的模拟环 ...

完全不一样就要一层一层debug,看下哪层出的问题




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