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

#### 产品支持情况

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


#### 功能说明

在原始网络模型编译时，保持个别算子的计算精度不变。

推理场景下，使用--precision_mode参数设置整个网络模型的精度模式，可能会有个别算子存在性能或精度问题，为此引入--keep_dtype参数，保持原始网络模型编译时个别算子的计算精度不变，具体算子可以通过该参数指定的文件进行配置。


#### 关联参数

该参数需要与--precision_mode参数同时使用，但当--precision_mode参数取值为must_keep_origin_dtype时，该参数不生效。


#### 参数取值

参数值：算子配置文件路径以及文件名，配置文件中列举需保持计算精度的算子名称或算子类型，每个算子单独一行。

参数值约束：

- 若为算子类型，则以OpType::typeName格式进行配置，每个OpType单独一行，且算子OpType必须为基于Ascend IR定义的算子的OpType，算子类型查看方法请参见  如何确定原始框架网络模型中的算子与AI处理器支持的算子的对应关系
。
- 若为算子名称，则以Opname格式进行配置，每个Opname单独一行，Opname取值为原始模型算子名称。

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


#### 推荐配置及收益

无。


#### 示例

- 若配置文件中为算子名称，则配置样例如下（文件名举例为execeptionlist.cfg）：

```
Opname1
Opname2
…
```


- 若配置文件中为算子类型，则配置样例为（文件名举例为execeptionlist.cfg）：

```
OpType::TypeName1
OpType::TypeName2
…
```


以TensorFlow ResNet50网络模型中的Relu算子为例，其对应的Ascend IR定义的算子类型为Relu，配置样例如下：

```
#算子名称配置样例：
fp32_vars/Relu
#算子类型配置样例：
OpType::Relu
```

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

```
--keep_dtype=${HOME}/execeptionlist.cfg --precision_mode=force_fp16
```

模型编译时，execeptionlist.cfg文件中的算子，保持原始网络模型精度，即精度不会改变，其余网络模型中的算子以--precision_mode参数指定的精度模式进行编译。


#### 依赖约束

无。
