未验证 提交 065f6444 编写于 作者: C cc 提交者: GitHub

refine docs for dygraph qat, test=develop, test=document_fix (#708)

上级 d8763558
......@@ -67,7 +67,7 @@ model.evaluate(val_dataset, batch_size=256, verbose=1)
### 4.1 将模型转换为模拟量化模型
当使用普通在线量化时`weight_preprocess_type` 用默认设置None即可,当需要使用PACT在线量化时,则设置为'PACT'。
当使用普通量化策略时`weight_preprocess_type` 用默认设置None即可,当需要使用PACT量化策略时,则设置为'PACT'。
```python
quant_config = {
......@@ -82,7 +82,7 @@ quanter.quantize(net)
```
注意:
* 目前PACT在线量化产出的量化模型,使用PaddleLite在ARM CPU上部署时,精度正确,但是使用PaddleInference在NV GPU和Intel CPU上部署时,可能存在精度问题。所以,请合理选择在线量化方法的种类。
* 目前PACT量化策略产出的量化模型,使用PaddleLite在ARM CPU上部署时,精度正确,但是使用PaddleInference在NV GPU和Intel CPU上部署时,可能存在精度问题。所以,请合理选择在线量化方法的种类。
* 对于使用动态图QAT量化训练功能的模型,在组网时请不要使用`paddle.nn.functional.`下的API。
### 4.2 训练量化模型
......
......@@ -2,12 +2,7 @@
在线量化是在模型训练的过程中建模定点量化对模型的影响,通过在模型计算图中插入量化节点,在训练建模量化对模型精度的影响降低量化损失。
> 注意:目前动态图量化训练还不支持有控制流逻辑的模型,如果量化训练中出现Warning,推荐使用静态图量化训练功能。
PaddleSlim包含`QAT量化训练``PACT改进的量化训练`两种量化方法
- QAT
- PACT
PaddleSlim动态图量化训练功能那,包含普通策略和PACT策略。
## 使用方法
......@@ -41,7 +36,7 @@ quant_config = {
### 2. 转换量化模型
在确认好我们的量化配置以后,我们可以根据这个配置把我们定义好的一个普通模型转换为一个模拟量化模型。我们根据量化原理中介绍的PACT方法,定义好PACT函数pact和其对应的优化器pact_opt。在这之后就可以进行转换,转换的方式也很简单:
在确认好我们的量化配置以后,我们可以根据这个配置把我们定义好的一个普通模型转换为一个模拟量化模型。转换的方式也很简单:
```python
import paddleslim
......@@ -61,15 +56,15 @@ quanter.quantize(net)
import paddleslim
quanter.save_quantized_model(
model,
path,
save_path,
input_spec=[paddle.static.InputSpec()])
```
量化预测模型可以使用`netron`软件打开,进行可视化查看。该量化预测模型和普通FP32预测模型一样,可以使用PaddleLite和PaddleInference加载预测,具体请参考`推理部署`章节。
## PACT在线量化
## PACT量化策略
PACT方法是对普通在线量化方法的改进,对于一些量化敏感的模型,例如MobileNetV3,PACT方法一般都能降低量化模型的精度损失。
PACT量化策略是对普通量化策略的改进,对于一些量化敏感的模型,例如MobileNetV3,PACT量化策略一般都能降低量化模型的精度损失。
使用方法上与普通在线量化方法相近:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册