---
title: --compression_optimize_conf
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/aoe/aoepar_16_040.html
sourcePath: /source/zh/canncommercial/900/devaids/aoe/aoepar_16_040.html
indexId: 630c8b7e9d06c9f920fed6bf0e4d3a98b4c2791dee4e8b0dca4524b7b745d7f760
---
# --compression_optimize_conf

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |


#### 功能说明

压缩优化功能配置文件路径以及文件名，通过该参数使能配置文件中指定的压缩优化特性，从而提升网络性能。


#### 关联参数

若通过该参数配置了calibration量化特性，则不能再使用高精度特性，比如不能再通过--precision_mode参数配置force_fp32或must_keep_origin_dtype（原图fp32输入）；不能通过--op_precision_mode配置high_precision参数等。在高精度模式下设置量化参数，既拿不到量化的性能收益，也拿不到高精度模式的精度收益。


#### 参数取值

参数值：配置文件路径以及文件名。

参数值格式：路径和文件名：支持大小写字母（a-z，A-Z）、数字（0-9）、下划线（_）、中划线（-）、句点（.）、中文汉字。

参数值约束：当前配置文件仅支持calibration特性，用于使能graph压缩功能。配置文件中冒号前面表示模型压缩特征，冒号后面表示该特性对应的参数。具体请参考示例。

参数默认值：无。


#### 推荐配置及收益

无。


#### 示例

假设模型压缩功能配置文件名称为compression_optimize.cfg，文件内容配置示例如下：

```
calibration:
{
input_data_dir: ./data.bin,d2.bin
input_shape: in:16,16;in1:16,16
config_file: simple_config.cfg
infer_soc: xxxxxx
infer_device_id: 0
infer_ip: x.x.x.x
infer_port: 8000
log: info
}
```


- calibration：训练后量化，是指在模型训练结束之后进行的量化，对训练后模型中的权重由浮点数（当前支持float32）量化到低比特整数（当前支持int8），并通过少量校准数据基于推理过程对数据（activation）进行校准量化，进而加速模型推理速度。训练后量化简单易用，只需少量校准数据，适用于追求高易用性和缺乏训练资源的场景。训练后量化的样例请单击  Link(https://gitee.com/ascend/samples/tree/master/python/level1_single_api/9_amct/atc)
获取。
  各参数说明如下，
  - input_data_dir：必选配置，模型输入校准数据的bin文件路径。若模型有多个输入，则多个输入的bin数据文件以英文逗号分隔。校准数据集用来计算量化参数，获取校准集时应该具有代表性，推荐使用测试集的子集作为校准数据集。校准数据的bin文件的生成方式可以参考    链接(https://gitee.com/ascend/samples/blob/master/python/level1_single_api/9_amct/amct_caffe/cmd/src/process_data.py)
。
  - input_shape：必选配置，模型输入校准数据的shape信息，例如：input_name1:n1,c1,h1,w1;input_name2:n2,c2,h2,w2，节点中间使用英文分号分隔。
  - config_file：可选配置，训练后量化简易配置文件，该文件配置示例以及参数解释请参见    量化简易配置文件
。
  - infer_soc：必选配置，进行训练后量化校准推理时，所使用的芯片名称，查询方法如下：

    - 非Atlas A3 训练系列产品 / Atlas A3 推理系列产品：在安装AI处理器的服务器执行npu-smi info命令进行查询，获取Name信息。实际配置值为AscendName，例如Name取值为xxxyy，实际配置值为Ascendxxxyy。
    - Atlas A3 训练系列产品 / Atlas A3 推理系列产品：在安装AI处理器的服务器执行npu-smi info -t board -iid-cchip_id命令进行查询，获取Chip Name和NPU Name信息，实际配置值为Chip Name_NPU Name。例如Chip Name取值为Ascendxxx，NPU Name取值为1234，实际配置值为Ascendxxx_1234。
其中：

      - id：设备id，通过npu-smi info -l命令查出的NPU ID即为设备id。
      - chip_id：芯片id，通过npu-smi info -m命令查出的Chip ID即为芯片id。
  - infer_device_id：可选配置，进行训练后量化校准推理时所使用AI处理器设备的ID，默认为0。
  - infer_ip：Ascend RC场景，配置为NCS软件包所在服务器IP地址。当AOE调优时携带了"--ip"参数时，不能配置该参数，否则系统会报错。
  - infer_port：Ascend RC场景，配置为NCS软件包所在服务器端口。当AOE调优时携带了"--port"参数时，不能配置该参数，否则系统会报错。
  - log：可选配置，设置训练后量化时的日志等级，该参数只控制训练后量化过程中显示的日志级别，默认显示info级别：

    - debug：输出debug/info/warning/error/event级别的日志信息。
    - info：输出info/warning/error/event级别的日志信息。
    - warning：输出warning/error/event级别的日志信息。
    - error：输出error/event级别的日志信息。
此外，训练后量化过程中的日志打屏以及日志落盘信息由AMCT_LOG_DUMP环境变量进行控制：- export AMCT_LOG_DUMP=1：表示日志打印到屏幕，不保存量化因子record文件和graph文件。
- export AMCT_LOG_DUMP=2：将日志落盘到当前路径的amct_log_$时间戳/amct_acl.log文件中，并保存量化因子record文件。
- export AMCT_LOG_DUMP=3：将日志落盘到当前路径的amct_log_$时间戳/amct_acl.log文件中，并保存量化因子record文件和graph文件。


为防止日志文件、record文件、graph文件持续落盘导致磁盘被写满，请及时清理这些文件。
如果用户配置了ASCEND_WORK_PATH环境变量，则上述日志、量化因子record文件和graph文件存储到该环境变量指定的路径下，例如ASCEND_WORK_PATH=/home/test，则存储路径为：/home/test/amct_acl/amct_log_{pid}_$时间戳。其中，amct_acl模型转换过程中会创建，{pid}为进程号。


将该文件上传到AOE工具所在服务器，例如上传到${HOME}/module，使用示例如下：

```
--compression_optimize_conf=${HOME}/module/compression_optimize.cfg
```


#### 依赖约束

- 使用该参数的压缩特性时，需要单独安装AMCT（acl）软件包，该包的获取以及安装方法请参见《AMCT模型压缩工具(https://www.hiascend.com/document/detail/zh/canncommercial/900/devaids/amct/atlasamct_16_0001.html)》中的“准备环境>获取软件包、上传软件包、安装工具”章节。

- 使用配置文件中的calibration训练后量化功能时，只支持带NPU设备的安装场景，详细介绍请参见《CANN 软件安装(https://www.hiascend.com/document/detail/zh/canncommercial/900/softwareinst/instg/instg_0000.html)》。
- 使用配置文件中的calibration进行训练后量化功能时，AOE工具会调用AMCT量化接口执行相关操作，原理图如下：
  图1 训练后量化原理简图
