---
title: 参数概览
description: "使用ATC工具转换模型之前，首先查看使用工具过程中的一些限制，然后借助本章节提供的参数概览功能，可以快速预览相关参数。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/atctool/atlasatc_16_0039.html
sourcePath: /source/zh/canncommercial/900/devaids/atctool/atlasatc_16_0039.html
indexId: aaa9e4d4c536f1eb47b3923faf4fb5a2e68823c85bcc33840d6cc077534d7d7967
---
# 参数概览

使用ATC工具转换模型之前，首先查看使用工具过程中的一些限制，然后借助本章节提供的参数概览功能，可以快速预览相关参数。

#### 总体约束

在进行模型转换前，请务必查看如下约束要求：

- 如果要将Faster RCNN等网络模型转成适配AI处理器的离线模型，则务必参见  定制网络修改（Caffe）
先修改prototxt模型文件。
- 支持原始框架类型为Caffe、TensorFlow、MindSpore、ONNX的模型转换：

  - 当原始框架类型为Caffe、MindSpore、ONNX时，输入数据类型为FP32、FP16、UINT8（通过配置数据预处理    --insert_op_conf
实现）。
  - 当原始框架类型为TensorFlow时，输入数据类型为FP16、FP32、UINT8、INT32、INT64、BOOL。
- 对于Caffe框架网络模型：输入数据最大支持四维，转维算子（Reshape、ExpandDims等）不能输出五维。
- 模型中的所有层算子除const算子外，输入和输出需要满足dim!=0。
- 只支持  CANN算子规格说明(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/aolapi/operatorlist_00093.html)
中的算子，并需满足算子限制条件。
- 由于软件约束（动态shape场景下暂不支持输入数据为DT_INT8），量化后的部署模型使用ATC工具进行模型转换时，不能使用动态shape相关参数，例如  --dynamic_batch_size
和  --dynamic_image_size
等，否则模型转换会失败。
- 使用AMCT工具量化后的部署模型，使用ATC工具进行模型转换时，不能再使用高精度特性，比如不能再通过  --precision_mode
参数配置force_fp32或must_keep_origin_dtype（原图fp32输入）；不能再通过  --precision_mode_v2
参数配置origin；不能通过  --op_precision_mode
配置high_precision参数等。在高精度模式下设置量化参数，既拿不到量化的性能收益，也拿不到高精度模式的精度收益。


#### 参数概览

- 如果通过atc --help命令查询出的参数未解释在表1，则说明该参数预留或适用于其他产品，用户无需关注。
- 使用atc命令进行模型转换时，命令有两种方式，用户根据实际情况进行选择，本手册以选择第一种方式为例进行说明：

  - atc param1=value1 param2=value2 ...（value值前面不能有空格，否则会导致截断，param取的value值为空）
  - atc param1 value1 param2 value2 ...
- 使用ATC参数时，参数名支持以--作为前缀（例如--help），也支持以-作为前缀（例如-help），当使用-作为前缀时，在执行atc命令时，会自动转换为--。本文的参数名均以--前缀为例。
- 使用ATC参数时，参数名称支持以下划线连接两个字符串（例如soc_version），也支持以中划线连接两个字符串（例如soc-version）。本文的参数名称均以下划线连接两个字符串（例如soc_version）为例。
-   表1
中的“是否必选”列，需要根据--mode取值具体区分。


**表1 ATC参数概览**

| ATC参数名称 | 参数简述（具体说明见参数描述章节） | 是否必选（\-\-mode=0或3时） | 默认值 |
| --- | --- | --- | --- |
| \-\-help或\-\-h | 显示帮助信息。 | 否 | 不涉及 |
| \-\-mode | 运行模式。 | 否 | 0 |
| \-\-dynamic\_batch\_size | 设置动态batch档位参数，适用于执行推理时，每次处理图片数量不固定的场景。 | 否 | 不涉及 |
| \-\-dynamic\_dims | 设置ND格式下动态维度的档位。适用于执行推理时，每次处理任意维度的场景。 | 否 | 不涉及 |
| \-\-dynamic\_image\_size | 设置输入图片的动态分辨率参数。适用于执行推理时，每次处理图片宽和高不固定的场景。 | 否 | 不涉及 |
| \-\-framework | 原始框架类型。 | 是 | 不涉及 |
| \-\-input\_format | 输入数据格式。 | 否 | Caffe、MindSpore、ONNX默认为NCHW；TensorFlow默认为NHWC |
| \-\-input\_shape | 模型输入数据的shape。 | 否 | 不涉及 |
| \-\-model | 原始模型文件路径与文件名。 | 是 | 不涉及 |
| \-\-om | 需要转换为JSON格式的离线模型或原始模型文件的路径和文件名。 | 否 | 不涉及 |
| \-\-singleop | 单算子定义文件，将单个算子JSON文件转换成适配AI处理器的离线模型。 | 否 | 不涉及 |
| \-\-weight | 权重文件路径与文件名。 | 否 | 不涉及 |
| \-\-check\_report | 预检结果保存文件路径和文件名。 | 否 | 执行atc命令当前路径生成check\_result.json |
| \-\-host\_env\_cpu | 若模型编译环境的操作系统及其架构与模型运行环境不一致时，则需使用本参数设置模型运行环境的操作系统架构。 | 否 | 执行atc \-\-help命令查看“\-\-host\_env\_cpu”参数的默认值或查看${INSTALL\_DIR}/opp/scene.info文件中的取值 |
| \-\-host\_env\_os | 若模型编译环境的操作系统及其架构与模型运行环境不一致时，则需使用本参数设置模型运行环境的操作系统类型。 | 否 | 执行atc \-\-help命令查看“\-\-host\_env\_os”参数的默认值或查看${INSTALL\_DIR}/opp/scene.info文件中的取值 |
| \-\-json | 离线模型或原始模型文件转换为JSON格式文件的路径和文件名。 | 否 | 不涉及 |
| \-\-output | 如果是开源框架的网络模型，存放转换后的离线模型的路径以及文件名。 如果是单算子描述文件，存放转换后的单算子模型的路径。 | 是 | 不涉及 |
| \-\-output\_type | 指定网络输出数据类型或指定某个输出节点的输出类型。 | 否 | 不涉及 |
| \-\-aicore\_num | 设置模型编译时使用的aicore数目。 | 否 | 默认值为最大值 |
| \-\-core\_type | 设置网络模型使用的Core类型，若网络模型中包括Cube算子，则只能使用AiCore。 | 否 | AiCore |
| \-\-soc\_version | 模型转换时指定芯片版本。 | 是 | 不涉及 |
| \-\-virtual\_type | 是否支持离线模型在算力分组生成的虚拟设备上运行。 | 否 | 0 |
| \-\-external\_weight | 生成om离线模型时，是否将原始网络中的Const/Constant节点的权重保存在单独的文件中，同时将节点类型转换为FileConstant类型。 | 否 | 0 |
| \-\-input\_fp16\_nodes | 指定输入数据类型为FP16的输入节点名称。 | 否 | 不涉及 |
| \-\-insert\_op\_conf | 插入算子的配置文件路径与文件名，例如aipp预处理算子。 | 否 | 不涉及 |
| \-\-is\_input\_adjust\_hw\_layout | 用于指定网络输入数据类型是否为FP16，数据格式是否为NC1HWC0。 | 否 | false |
| \-\-is\_output\_adjust\_hw\_layout | 用于指定网络输出的数据类型是否为FP16，数据格式是否为NC1HWC0。 | 否 | false |
| \-\-op\_name\_map | 扩展算子（非标准算子）映射配置文件路径和文件名，不同的网络中某扩展算子的功能不同，可以指定该扩展算子到具体网络中实际运行的扩展算子的映射。 | 否 | 不涉及 |
| \-\-out\_nodes | 指定输出节点。 | 否 | 不涉及 |
| \-\-ac\_parallel\_enable | 动态shape图中，是否允许AI CPU算子和AI Core算子并行运行。 | 否 | 0 |
| \-\-buffer\_optimize | 是否开启数据缓存优化。 | 否 | l2\_optimize |
| \-\-compression\_optimize\_conf | 压缩优化功能配置文件路径以及文件名。 | 否 | 不涉及 |
| \-\-disable\_reuse\_memory | 内存复用开关。 | 否 | 0 |
| \-\-enable\_attr\_compression | 是否对图中的属性进行压缩。 | 否 | true |
| \-\-enable\_scope\_fusion\_passes | 指定编译时需要生效的融合规则列表。 | 否 | 不涉及 |
| \-\-enable\_single\_stream | 是否使能模型推理顺序单流串行执行。 | 否 | false |
| \-\-enable\_small\_channel | 是否使能small channel的优化，使能后在channel<=4的首层卷积会有性能收益。 | 否 | 0 |
| \-\-fusion\_switch\_file | 融合开关配置文件路径以及文件名。 | 否 | 不涉及 |
| \-\-mdl\_bank\_path | 加载模型调优后自定义知识库的路径。 | 否 | ${HOME}/Ascend/latest/data/aoe/custom/graph/<soc\_version> |
| \-\-oo\_constant\_folding | 是否开启常量折叠优化。 | 否 | true |
| \-\-oo\_dead\_code\_elimination | 是否开启死边消除优化。 | 否 | true |
| \-\-oo\_level | 图编译多级选项优化。 | 否 | O3 |
| \-\-quant\_dumpable | 是否采集量化算子的dump数据。 | 否 | 0 |
| \-\-sparsity | 使能全局稀疏特性。 | 否 | 0 |
| \-\-tiling\_schedule\_optimize | Tiling下沉调度优化开关。 | 否 | 0 |
| \-\-topo\_sorting\_mode | 对算子进行图模式编译时，可选择的不同的图遍历模式。 | 否 | 1 |
| \-\-allow\_hf32 | 是否启用HF32自动代替FP32数据类型的功能。 | 否 | 针对Conv类算子，启用FP32转换为HF32；针对Matmul类算子，关闭FP32转换为HF32。 |
| \-\-customize\_dtypes | 模型编译时自定义算子的计算精度。 | 否 | 不涉及 |
| \-\-is\_weight\_clip | 是否对浮点类型权重数据进行裁剪。 | 否 | 1 |
| \-\-keep\_dtype | 通过配置文件指定原始模型中特定算子的数据类型在模型编译过程中保持不变。 | 否 | 不涉及 |
| \-\-modify\_mixlist | 混合精度场景下，修改算子使用混合精度名单。 | 否 | 不涉及 |
| \-\-op\_bank\_path | 加载AOE调优后自定义知识库的路径。 | 否 | 默认自定义知识库路径$HOME/Ascend/latest/data/aoe/custom/op |
| \-\-op\_precision\_mode | 设置具体某个算子的精度模式，通过该参数可以为不同的算子设置不同的精度模式。 | 否 | 不涉及 |
| \-\-precision\_mode | 设置网络模型的精度模式。 | 否 | force\_fp16 |
| \-\-precision\_mode\_v2 | 设置网络模型的精度模式。与\-\-precision\_mode不能同时使用，推荐使用\-\-precision\_mode\_v2。 | 否 | fp16 |
| \-\-atomic\_clean\_policy | 是否集中清理网络中所有memset算子（含有memset属性的算子都是memset算子）占用的内存。 | 否 | 0 |
| \-\-debug\_dir | 用于配置保存模型转换、网络迁移过程中算子编译生成的调试相关过程文件的路径，包括算子.o/.json/.cce等文件。 | 否 | ./kernel\_meta |
| \-\-deterministic | 是否开启确定性计算。 | 否 | 0 |
| \-\-deterministic\_level | 确定性计算级别。 | 否 | 0 |
| \-\-display\_model\_info | 模型编译时或对已有的离线模型，查询模型占用的关键资源信息、编译与运行环境等信息。 | 否 | 0 |
| \-\-dump\_mode | 是否生成带shape信息的JSON文件。 | 否 | 0 |
| \-\-export\_compile\_stat | 配置图编译过程中是否生成算子融合信息（包括图融合和UB融合）的结果文件fusion\_result.json。 | 否 | 1 |
| \-\-log | 设置ATC模型转换过程中显示日志的级别。 | 否 | null |
| \-\-op\_compiler\_cache\_dir | 用于配置算子编译磁盘缓存的目录。 | 否 | $HOME/atc\_data |
| \-\-op\_compiler\_cache\_mode | 用于配置算子编译磁盘缓存模式。 | 否 | disable |
| \-\-op\_debug\_config | 使能Global Memory（DDR）内存检测功能的配置文件路径及文件名。 | 否 | 不涉及 |
| \-\-op\_debug\_level | TBE算子编译debug功能开关。 | 否 | 0 |
| \-\-status\_check | 控制编译算子时是否添加溢出检测逻辑。 | 否 | 0 |
| \-\-input\_shape\_range | 指定模型输入数据的shape范围。 该参数已废弃，请勿使用。 | 否 | 不涉及 |
| \-\-op\_select\_implmode | 该参数功能已经不演进，后续版本会废弃，推荐使用\-\-op\_precision\_mode参数。 设置网络模型中算子是高精度实现模式还是高性能实现模式。 | 否 | high\_performance |
| \-\-optypelist\_for\_implmode | 设置optype列表中算子的实现模式，算子实现模式包括high\_precision、high\_performance两种。 | 否 | 不涉及 |
| \-\-shape\_generalized\_build\_mode | 图编译时Shape的编译方式。 该参数后续版本会废弃，请勿使用。 | 否 | shape\_precise |
