PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.81k stars 2.89k forks source link

量化训练时一大堆算子对不上 #9173

Open qiuzhewei opened 1 month ago

qiuzhewei commented 1 month ago

问题确认 Search before asking

请提出你的问题 Please ask your question

你好, 我正常训练picodet,一切都是正常的。 然后我想着量化训练一下,用的命令如下 tools/train.py -c configs/picodet/picodet_s_320_coco_lcnet.yml --slim_config configs/slim/quant/picodet_s_quant.yml --eval 出现了一大堆对不上的算子

截屏2024-10-17 11 31 58

感觉像是权重对不上,我用文档中命令时,只有一些权重对不上, python tools/train.py -c configs/picodet/picodet_s_416_coco_lcnet.yml \ --slim_config configs/slim/quant/picodet_s_416_lcnet_quant.yml --eval

截屏2024-10-17 11 34 57

如果我想用320的small model的量化训练,该怎么改呢?

zhangyubo0722 commented 1 month ago

将量化所使用的配置文件configs/slim/quant/picodet_s_416_lcnet_quant.yml,中的pretrain_weights模型权重为320的权重

qiuzhewei commented 1 month ago

谢谢解答,还有为什么量化得到的模型大小和不量化得到的模型大小差不多,都是4.5M左右?

zhangyubo0722 commented 4 weeks ago

请问怎么看的是否使用量化训练得到的不同权重大小呢,可以截下图

qiuzhewei commented 3 weeks ago

不是权重大小,是看得到的模型在硬盘上所占空间的大小。int8得到的模型不是应该是float16的一半嘛?但是我看得到的模型基本大小一样

zhangyubo0722 commented 3 weeks ago

量化训练模型大小和存储类型有关系,和是不是量化不一定一样的,如果需要对模型进行压缩,参考这个文档https://github.com/PaddlePaddle/PaddleDetection/tree/develop/deploy/auto_compression