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

#### 产品支持情况

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


#### 功能说明

混合精度场景下，修改算子使用混合精度名单，该文件包括黑名单，白名单和灰名单：

- 白名单：表示混合精度模式下，允许将当前float32类型的算子，降低精度到float16。
- 黑名单：表示混合精度模式下，不允许将当前float32类型的算子降低精度到float16，相应算子仍旧使用float32精度。
- 灰名单：表示混合精度模式下，当前算子的混合精度处理机制和前一个算子保持一致，即如果前一个算子支持降精度处理，当前算子也支持降精度；如果前一个算子不允许降精度，当前算子也不支持降精度。


#### 关联参数

该参数需要与--precision_mode参数同时使用，并且该参数取值需要设置为allow_mix_precision、allow_mix_precision_fp16、allow_mix_precision_bf16，表示使用混合精度模式。混合精度场景下网络模型中float32数据类型的算子，按照内置的优化策略，自动将部分float32的算子降低精度到float16；而使用--modify_mixlist参数后，用户可以在内置优化策略基础上进行调整，自行指定哪些算子允许降精度，哪些算子不允许降精度。

allow_mix_precision_bf16支持的型号如下：

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

Atlas A3 训练系列产品 / Atlas A3 推理系列产品


#### 参数取值

参数值：混合精度名单路径以及文件名。

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

参数值约束：

- 名单格式为*.json格式，文件中的算子列表由用户指定，多个算子使用英文逗号分隔。
- 配置的算子类型必须为基于Ascend IR定义的算子的OpType，算子类型查看方法请参见  如何确定原始框架网络模型中的算子与AI处理器支持的算子的对应关系
。


#### 推荐配置及收益

无。


#### 示例

混合精度名单样例如下，文件名举例为ops_info.json：

```
{
"black-list": {                  // 黑名单
"to-remove": [                // 黑名单算子转换为灰名单算子，配置该参数时，请确保被转换的算子已经存在于黑名单中
"Yolo"
],
"to-add": [                   // 白名单或灰名单算子转换为黑名单算子
"Matmul"
]
},
"white-list": {                  // 白名单
"to-remove": [                // 白名单算子转换为灰名单算子，配置该参数时，请确保被转换的算子已经存在于白名单中
"Conv2D"
],
"to-add": [                   // 黑名单或灰名单算子转换为白名单算子
"Bias"
]
}
}
```

- 假设算子A默认在白名单中，如果您希望将该算子配置为黑名单算子，则配置示例和系统处理逻辑为：

  1. 将该算子添加到黑名单中：

```
{
"black-list": {
"to-add": [A]
}
}
```


    则系统会将该算子从白名单中删除，并添加到黑名单中，最终该算子在黑名单中。

  2. 将该算子从白名单中删除，同时添加到黑名单中：

```
{
"black-list": {
"to-add": [A]
}
"white-list": {
"to-remove": [A]
}
}
```


    则系统会将该算子从白名单中删除，并添加到黑名单中，最终该算子在黑名单中。

- 对于只从黑/白名单中删除，而不添加到白/黑名单的场景，系统会将该算子添加到灰名单中，配置示例如下（例如，从白名单删除某个算子）：

```
{
"white-list": {
"to-remove": [A]
}
}
```


  则系统会将该算子从白名单中删除，然后添加到灰名单中，最终该算子在灰名单中。


将配置好的ops_info.json文件上传到AOE工具所在服务器任意目录，例如上传到${HOME}/module，使用示例如下：

```
--precision_mode=allow_mix_precision  --modify_mixlist=${HOME}/module/ops_info.json
```


#### 依赖约束

无。
