PaddleSlim icon indicating copy to clipboard operation
PaddleSlim copied to clipboard

量化模型以int8格式存储并加载

Open XGZhang11 opened this issue 3 years ago • 2 comments

需求描述: 需要将量化模型通过网络下发私有化现场,所以希望在存储时减小模型体积,以int8格式存储并下发,paddleinference部署时直接加载int8模型并转为fp32格式,用于tensorrt推理。

模型和环境: ppyolo_r18 paddle-develop paddleslim2.0 paddledetection2.0

问题描述:

  1. 模型离线量化后,将数据类型强制转为int8后存储,未考虑量化scale,加载此模型后,精度会降低为0。
  2. 如果将模型量化后分别存储scale与int8范围内的权重,加载模型后需要进行反量化操作。

XGZhang11 avatar Jun 02 '21 12:06 XGZhang11

可以采用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将权重反量化。

XGZhang11 avatar Jun 22 '21 03:06 XGZhang11

需求描述: 需要将量化模型通过网络下发私有化现场,所以希望在存储时减小模型体积,以int8格式存储并下发,paddleinference部署时直接加载int8模型并转为fp32格式,用于tensorrt推理。

模型和环境: ppyolo_r18 paddle-develop paddleslim2.0 paddledetection2.0

问题描述:

  1. 模型离线量化后,将数据类型强制转为int8后存储,未考虑量化scale,加载此模型后,精度会降低为0。
  2. 如果将模型量化后分别存储scale与int8范围内的权重,加载模型后需要进行反量化操作。

同样的需求...老哥解决了吗

Water2style avatar Dec 31 '21 10:12 Water2style