Toybrick

标题: 3399pro的量化精度 [打印本页]

作者: nila    时间: 2019-2-25 19:20
标题: 3399pro的量化精度
测试了一个网络,使用RKNN,dynamic_fixed_point-16量化,置信度大概偏差了千份之0.65,但时间比较长,
如果是asymmetric_quantized-u8,速度提升比较多,但偏差要百分之5.2
请问以上测试数据是否合理?但精度还是不够,如何进一步提高精度?

作者: raul    时间: 2019-2-26 10:03
你好。请问测试的是什么网络?测试集及测试方法是怎么样的?
作者: nila    时间: 2019-2-26 17:03
raul 发表于 2019-2-26 10:03
你好。请问测试的是什么网络?测试集及测试方法是怎么样的?

网络结构是ResNet101标准分类网络;将最后的1千类改为256分类。
选一张图片(分辨率224*224,RGB)在PC端和RKNN分别跑,比较softmax前一级的全连接层的输出结果(256维的特征向量)。
精度比较,就是纯PC端未量化的结果(256维的特征向量)与RKNN量化结果(256维的特征向量),对应位置直接比较。示意如下:
[attach]133[/attach]

作者: raul    时间: 2019-2-27 10:50
精度需要用一个测试集来测,尽量用大点的数据集。单张图片有些置信度可能提高,有些可能降低。
作者: nila    时间: 2019-2-27 19:55
raul 发表于 2019-2-27 10:50
精度需要用一个测试集来测,尽量用大点的数据集。单张图片有些置信度可能提高,有些可能降低。 ...

我们比较关心256维特征向量的偏差,每个置信度的偏差都会影响到最后的结果。
是否有不同量化的相关测试结果呢?
另外quantization=false也是会有偏差的,是这样的吗?

作者: 程子    时间: 2019-2-27 20:48
从模型转换之后体积减小一半来猜测:即使quantization=False的情况下也做了Float16的量化。
作者: raul    时间: 2019-2-28 21:10
nila 发表于 2019-2-27 19:55
我们比较关心256维特征向量的偏差,每个置信度的偏差都会影响到最后的结果。
是否有不同量化的相关测试结 ...

不同的图片,它的置信度偏差是会不同的,所以看精度的时候,还是需要多测不同的图片。我们也测了下TensorFlow resnet101v1的精度,原始模型精度top1是76.126%,top5是92.824%,用asymmetraic_quantized-u8量化后精度top1 75.636%,top5 92.908%,top1只降了0.5%不到。
quantization=false的是也可能会有一点偏差,我们在加载原始模型后会做一定的优化,这个优化有可能导致置信度偏差。
作者: yhc    时间: 2019-3-1 09:10
PC Float跑出来的结果和量化后跑出来的结果进行对比是没有意义的,应该都用量化结果对数据集进行测试,得到ROC曲线,然后再对比float模型的精度
作者: nila    时间: 2019-3-4 17:09
yhc 发表于 2019-3-1 09:10
PC Float跑出来的结果和量化后跑出来的结果进行对比是没有意义的,应该都用量化结果对数据集进行测试,得到 ...

@yhc @raul tks!
如果我想得到最高的精度,通过哪几个配置可以得到呢?
作者: yhc    时间: 2019-3-6 10:57
可以设置量化的dataset来使量化参数更贴合实际的场景
作者: nila    时间: 2019-3-6 15:51
yhc 发表于 2019-3-6 10:57
可以设置量化的dataset来使量化参数更贴合实际的场景

@yhc
不是很理解这个dataset是什么作用,应该放一些什么样的图片进去呢?
目前是放了一张图,推理也是用同一张。
作者: 程子    时间: 2019-3-6 23:44
nila 发表于 2019-3-6 15:51
@yhc
不是很理解这个dataset是什么作用,应该放一些什么样的图片进去呢?
目前是放了一张图,推理也是用 ...

我猜是放特征分布符合实际推理时候使用的图的图放进去给量化做参照。




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