Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleSlim
提交
0fdbc80e
P
PaddleSlim
项目概览
PaddlePaddle
/
PaddleSlim
接近 2 年 前同步成功
通知
51
Star
1434
Fork
344
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
53
列表
看板
标记
里程碑
合并请求
16
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleSlim
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
53
Issue
53
列表
看板
标记
里程碑
合并请求
16
合并请求
16
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
0fdbc80e
编写于
8月 22, 2022
作者:
G
Guanghua Yu
提交者:
GitHub
8月 22, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix act hyperparameter docs (#1375)
上级
75a1e1e9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
21 addition
and
22 deletion
+21
-22
example/auto_compression/hyperparameter_tutorial.md
example/auto_compression/hyperparameter_tutorial.md
+21
-22
未找到文件。
example/auto_compression/hyperparameter_tutorial.md
浏览文件 @
0fdbc80e
...
...
@@ -8,35 +8,37 @@
量化参数主要设置量化比特数和量化op类型,其中量化op包含卷积层(conv2d, depthwise_conv2d)和全连接层(mul, matmul_v2)。以下为只量化卷积层的示例:
```
yaml
Quantization
:
use_pact
:
true
# 量化训练是否使用PACT方法
activation_bits
:
8
# 激活量化比特数
weight_bits
:
8
# 权重量化比特数
activation_quantize_type
:
'
range_abs_max'
# 激活量化方式
use_pact
:
false
# 量化训练是否使用PACT方法
weight_quantize_type
:
'
channel_wise_abs_max'
# 权重量化方式
not_quant_pattern
:
[
skip_quant
]
# 跳过量化层的name_scpoe命名(保持默认即可)
quantize_op_types
:
[
conv2d
,
depthwise_conv2d
]
# 量化OP列表
dtype
:
'
int8'
# 量化后的参数类型,默认 int8 , 目前仅支持 int8
window_size
:
10000
# 'range_abs_max' 量化方式的 window size ,默认10000。
moving_rate
:
0.9
# 'moving_average_abs_max' 量化方式的衰减系数,默认 0.9。
for_tensorrt
:
false
# 量化后的模型是否使用 TensorRT 进行预测。如果是的话,量化op类型为: TENSORRT_OP_TYPES 。默认值为False.
is_full_quantize
:
false
# 是否全量化
onnx_format
:
false
# 是否采用ONNX量化标准格式
############### 不常用,以下参数不用设置 #########################
activation_bits
:
8
# 激活量化比特数
weight_bits
:
8
# 权重量化比特数
activation_quantize_type
:
'
moving_average_abs_max'
# 激活量化方式 [保持默认即可]
not_quant_pattern
:
[
skip_quant
]
# 跳过量化层的name_scpoe命名 [保持默认即可]
dtype
:
'
int8'
# 量化后的参数类型,默认 int8 , 目前仅支持 int8 [保持默认即可]
window_size
:
10000
# 'range_abs_max' 量化方式的 window size ,默认10000。 [保持默认即可]
moving_rate
:
0.9
# 'moving_average_abs_max' 量化方式的衰减系数,默认 0.9。 [保持默认即可]
for_tensorrt
:
false
# 量化后的模型是否使用 TensorRT 进行预测。如果是的话,量化op类型为: TENSORRT_OP_TYPES 。默认值为False. [保持默认即可]
is_full_quantize
:
false
# 是否全量化 [保持默认即可]
```
以上配置项说明如下:
-
use_pact: 是否开启PACT。一般情况下,开启PACT后,量化产出的模型精度会更高。算法原理请参考:
[
PACT: Parameterized Clipping Activation for Quantized Neural Networks
](
https://arxiv.org/abs/1805.06085
)
-
activation_bits: 激活量化bit数,可选1~8。默认为8。
-
weight_bits: 参数量化bit数,可选1~8。默认为8。
-
activation_quantize_type: 激活量化方式,可选 'abs_max' , 'range_abs_max' , 'moving_average_abs_max' 。如果使用 TensorRT 加载量化后的模型来预测,请使用 'range_abs_max' 或 'moving_average_abs_max' 。默认为 'moving_average_abs_max'。
-
weight_quantize_type: 参数量化方式。可选 'abs_max' , 'channel_wise_abs_max' , 'range_abs_max' , 'moving_average_abs_max' 。如果使用 TensorRT 加载量化后的模型来预测,请使用 'channel_wise_abs_max' 。 默认 'channel_wise_abs_max' 。
-
not_quant_pattern: 所有
`name_scope`
包含 'not_quant_pattern' 字符串的 op ,都不量化。
`name_scope`
设置方式请参考
[
paddle.static.name_scope
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/static/name_scope_cn.html#name-scope
)
。
-
quantize_op_types:需要进行量化的OP类型。通过以下代码输出所有支持量化的OP类型:
```
from paddleslim.quant.quanter import TRANSFORM_PASS_OP_TYPES,QUANT_DEQUANT_PASS_OP_TYPES
print(TRANSFORM_PASS_OP_TYPES + QUANT_DEQUANT_PASS_OP_TYPES)
```
-
onnx_format: 是否采用ONNX量化格式标准,如果需要导出成ONNX,则需要设置为True。
-
activation_bits: 激活量化bit数,可选1~8。默认为8。
-
weight_bits: 参数量化bit数,可选1~8。默认为8。
-
activation_quantize_type: 激活量化方式,可选 'abs_max' , 'range_abs_max' , 'moving_average_abs_max' 。如果使用 TensorRT 加载量化后的模型来预测,请使用 'range_abs_max' 或 'moving_average_abs_max' 。默认为 'moving_average_abs_max'。
-
not_quant_pattern: 所有
`name_scope`
包含 'not_quant_pattern' 字符串的 op ,都不量化。
`name_scope`
设置方式请参考
[
paddle.static.name_scope
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/static/name_scope_cn.html#name-scope
)
。
-
dtype: 量化后的参数类型,默认 int8 , 目前仅支持 int8
-
window_size: 'range_abs_max' 量化方式的 window size ,默认10000。
-
moving_rate: 'moving_average_abs_max' 量化方式的衰减系数,默认 0.9。
...
...
@@ -45,7 +47,6 @@ print(TRANSFORM_PASS_OP_TYPES + QUANT_DEQUANT_PASS_OP_TYPES)
from paddleslim.quant.quanter import TENSORRT_OP_TYPES
print(TENSORRT_OP_TYPES)
```
-
is_full_quantize: 是否量化所有可支持op类型。默认值为False.
...
...
@@ -56,14 +57,12 @@ print(TENSORRT_OP_TYPES)
Distillation
:
alpha
:
1.0
loss
:
l2
node
:
node
:
# 会默认选择,一般不用设置,除非自动选择的节点有问题,需要手动调整时,再设置
-
relu_30.tmp_0
teacher_model_dir
:
./inference_model
# teacher_model_filename: 预测模型文件,格式为 *.pdmodel 或 __model__
teacher_model_filename
:
model.pdmodel
# teacher_params_filename: 预测模型参数文件,格式为 *.pdiparams 或 __params__
teacher_params_filename
:
model.pdiparams
############ 以下参数无需设置,默认teacher模型为压缩前模型,除非指定其他模型为teacher模型才需设置以下参数 ##############
teacher_model_dir
:
./inference_model
# 模型路径
teacher_model_filename
:
model.pdmodel
# 预测模型文件
teacher_params_filename
:
model.pdiparams
# 预测模型参数文件
```
以上配置项说明如下:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录