PaddleSlim
PaddleSlim copied to clipboard
量化模型以int8格式存储并加载
需求描述: 需要将量化模型通过网络下发私有化现场,所以希望在存储时减小模型体积,以int8格式存储并下发,paddleinference部署时直接加载int8模型并转为fp32格式,用于tensorrt推理。
模型和环境: ppyolo_r18 paddle-develop paddleslim2.0 paddledetection2.0
问题描述:
- 模型离线量化后,将数据类型强制转为int8后存储,未考虑量化scale,加载此模型后,精度会降低为0。
- 如果将模型量化后分别存储scale与int8范围内的权重,加载模型后需要进行反量化操作。
可以采用https://github.com/PaddlePaddle/Paddle/blob/develop/python/paddle/fluid/contrib/slim/quantization/post_training_quantization.py#L1064 将模型权重保存为int8格式,并将权重的scale保存为该op的属性。 在推理端加载时,在load_combine这个op中将模型权重再转换为fp32,然后使用scale将权重反量化。
需求描述: 需要将量化模型通过网络下发私有化现场,所以希望在存储时减小模型体积,以int8格式存储并下发,paddleinference部署时直接加载int8模型并转为fp32格式,用于tensorrt推理。
模型和环境: ppyolo_r18 paddle-develop paddleslim2.0 paddledetection2.0
问题描述:
- 模型离线量化后,将数据类型强制转为int8后存储,未考虑量化scale,加载此模型后,精度会降低为0。
- 如果将模型量化后分别存储scale与int8范围内的权重,加载模型后需要进行反量化操作。
同样的需求...老哥解决了吗