量化后的模型如何在Paddle Inference中发挥全部性能?
bittergourd1224 opened this issue · comments
问题确认 Search before asking
- 我已经搜索过问题,但是没有找到解答。I have searched the question and found no related answer.
请提出你的问题 Please ask your question
PaddleSlim量化训练 中提到的:
PaddleSlim产出的量化模型文件,还是以float32的数值类型存储的权重,所以模型大小不会改遍。在用Paddle-Lite和Paddle Inference推理时,会按Int8进行计算
但是经过我的尝试,当使用GPU推理时,量化模型并没有更快。所执行的步骤是Linux平台编译指南,并且run_mode选择paddle,量化后的模型与量化前的模型的速度几乎没有差别,严重怀疑推理时仍然是采用float32的精度。
如果使用TensorRT推理,将run_model切换为trt_fp16或trt_int8,确实可以更快。但问题是,不经过量化训练的模型,也可以用trt_fp16或trt_int8模式推理,也可以加快推理速度,那量化训练的意义在哪里?
最后,我的诉求是将量化后模型用GPU推理且精度为int8来达到加速,具体该如何使用paddle inference实现?
还请指教,感谢!
那量化训练的意义在哪里?
精度不一样,
精度不一样,
@lyuwenyu 都用trt_int8推理,精度不一样在哪里?
另外还是想知道,如何将量化后模型用GPU推理且精度为int8?
精度不一样,
@lyuwenyu
你说的是不是准确率不同?但实测下来同样在trt_int8精度下,量化后模型的准确率还不如原始模型
另外终于找到了GPU下修改推理精度的方法,在
https://github.com/PaddlePaddle/Paddle-Inference-Demo/blob/master/c%2B%2B/gpu/gpu_fp16/resnet50_gpu_fp16.cc#L48
但实测下来,只支持float16,不支持int8
应该是量化训练这一阶段没训练好
我很怀疑一般的模型,通过四舍五入以更低精度推理,真的会和专门进行一次量化训练,有很大差别吗?
算了就这样吧