文档
注册

参数概览

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

总体约束

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

  • 如果要将Faster RCNN等网络模型转成适配昇腾AI处理器的离线模型,则务必参见定制网络修改(Caffe)先修改prototxt模型文件。
  • 支持原始框架类型为Caffe、TensorFlow、MindSpore、ONNX的模型转换:
    • 当原始框架类型为Caffe、MindSpore、ONNX时,输入数据类型为FP32、FP16(通过设置入参--input_fp16_nodes实现,MindSpore框架不支持该参数)、UINT8(通过配置数据预处理--insert_op_conf实现)。
    • 当原始框架类型为TensorFlow时,输入数据类型为FP16、FP32、UINT8、INT32、INT64、BOOL。
  • 当原始框架类型为Caffe时,模型文件(.prototxt)和权重文件(.caffemodel)的op name、op type必须保持名称一致(包括大小写)。
  • 当原始框架类型为TensorFlow时,只支持FrozenGraphDef格式。
  • 不支持动态shape的输入,例如:NHWC输入为[?,?,?,3]多个维度可任意指定数值。模型转换时需指定固定数值。
  • 对于Caffe框架网络模型:输入数据最大支持四维,转维算子(reshape、expanddim等)不能输出五维。
  • 模型中的所有层算子除const算子外,输入和输出需要满足dim!=0。
  • 只支持算子规格参考中的算子,并需满足算子限制条件。
  • 由于软件约束(动态shape场景下暂不支持输入数据为DT_INT8),量化后的部署模型使用ATC工具进行模型转换时,不能使用动态shape相关参数,例如--dynamic_batch_size--dynamic_image_size等,否则模型转换会失败。
  • 使用AMCT工具量化后的部署模型,使用ATC工具进行模型转换时,不能再使用高精度特性,比如不能再通过--precision_mode参数配置force_fp32must_keep_origin_dtype(原图fp32输入);不能再通过--precision_mode_v2参数配置origin;不能通过--op_precision_mode配置high_precision参数等。在高精度模式下设置量化参数,既拿不到量化的性能收益,也拿不到高精度模式的精度收益。

参数概览

图1列出了所有芯片共用的ATC参数(参数只在某些芯片下使用的未列出),其中表示参数互斥,不能同时使用;关联参数表示需要相互配合或者某些场景下需要配合使用。通过该图,您可以快速了解ATC中的部分参数,更多详细参数请参见表1

图1 ATC参数全景图
  • 如果通过atc --help命令查询出的参数未解释在表1,则说明该参数预留或适用于其他芯片版本,用户无需关注。
  • 使用atc命令进行模型转换时,命令有两种方式,用户根据实际情况进行选择:
    • atc param1=value1 param2=value2 ...(value值前面不能有空格,否则会导致截断,param取的value值为空)
    • atc param1 value1 param2 value2 ...
  • 参数是否必选以--mode为0和3为准。
  • 使用ATC参数时,参数名支持以--作为前缀(例如--help),也支持以-作为前缀(例如-help),当使用-作为前缀时,在执行atc命令时,会自动转换为--。本文的参数名均以--前缀为例。
  • 使用ATC参数时,参数名称支持以下划线连接两个字符串(例如soc_version),也支持以中划线连接两个字符串(例如soc-version)。本文的参数名称均以下划线连接两个字符串(例如soc_version)为例。
表1 ATC参数概览

ATC参数名称

参数简述(具体说明见参数描述章节)

是否必选

默认值

--help或--h

显示帮助信息。

不涉及

--mode

运行模式。

0

--model

原始模型文件路径与文件名。

不涉及

--weight

权重文件路径与文件名。

不涉及

--om

需要转换为json格式的离线模型或原始模型文件的路径和文件名。

不涉及

--framework

原始框架类型。

不涉及

--input_format

输入数据格式。

Caffe、ONNX默认为NCHW;TensorFlow默认为NHWC。

--input_shape

模型输入数据的shape。

不涉及

--input_shape_range

指定模型输入数据的shape范围。

该参数后续版本会废弃,请勿使用。

不涉及

--dynamic_batch_size

设置动态batch档位参数,适用于执行推理时,每次处理图片数量不固定的场景。

不涉及

--dynamic_image_size

设置输入图片的动态分辨率参数。适用于执行推理时,每次处理图片宽和高不固定的场景。

不涉及

--dynamic_dims

设置ND格式下动态维度的档位。适用于执行推理时,每次处理任意维度的场景。

不涉及

--singleop

单算子定义文件,将单个算子json文件转换成适配昇腾AI处理器的离线模型。

不涉及

--distributed_cluster_build

用于分布式部署的模型编译开关,使能该参数后,生成的离线模型将用于分布式部署。

不涉及

--cluster_config

指定目标执行环境的逻辑拓扑结构配置文件。

不涉及

--enable_graph_parallel

是否对原始模型进行自动切分。

不涉及

--graph_parallel_option_path

对原始模型进行切分时,切分策略配置文件路径。

不涉及

--shard_model_dir

指定切片模型文件所在路径。

不涉及

--model_relation_config

表达多个切片模型间的数据关联和分布式通信组关系的配置文件。

不涉及

--output

  • 如果是开源框架的网络模型,存放转换后的离线模型的路径以及文件名。
  • 如果是单算子描述文件,存放转换后的单算子模型的路径。

不涉及

--output_type

指定网络输出数据类型或指定某个输出节点的输出类型。

不涉及

--check_report

预检结果保存文件路径和文件名。

check_result.json

--json

离线模型或原始模型文件转换为json格式文件的路径和文件名。

不涉及

--host_env_os

若模型编译环境的操作系统及其架构与模型运行环境不一致时,则需使用本参数设置模型运行环境的操作系统类型。

不涉及

--host_env_cpu

若模型编译环境的操作系统及其架构与模型运行环境不一致时,则需使用本参数设置模型运行环境的操作系统架构。

不涉及

--soc_version

模型转换时指定芯片版本。

不涉及

--core_type

设置网络模型使用的Core类型,若网络模型中包括Cube算子,则只能使用AiCore。

AiCore

--aicore_num

设置模型编译时使用的aicore数目。

默认值为最大值

--virtual_type

是否支持离线模型在算力分组生成的虚拟设备上运行。

0

--out_nodes

指定输出节点。

不涉及

--input_fp16_nodes

指定输入数据类型为FP16的输入节点名称。

不涉及

--insert_op_conf

插入算子的配置文件路径与文件名,例如aipp预处理算子。

不涉及

--external_weight

生成om模型文件时,是否将原始网络中的Const/Constant节点的权重保存在单独的文件中,同时将节点类型转换为FileConstant类型。

0

--op_name_map

扩展算子(非标准算子)映射配置文件路径和文件名,不同的网络中某扩展算子的功能不同,可以指定该扩展算子到具体网络中实际运行的扩展算子的映射。

不涉及

--is_input_adjust_hw_layout

用于指定网络输入数据类型是否为FP16,数据格式是否为NC1HWC0。

false

--is_output_adjust_hw_layout

用于指定网络输出的数据类型是否为FP16,数据格式是否为NC1HWC0。

false

--disable_reuse_memory

内存复用开关。

0

--fusion_switch_file

融合开关配置文件路径以及文件名。

不涉及

--enable_scope_fusion_passes

指定编译时需要生效的融合规则列表。

不涉及

--enable_single_stream

是否使能一个模型只能使用一条stream。

false

--enable_small_channel

是否使能small channel的优化,使能后在channel<=4的首层卷积会有性能收益。

0

--ac_parallel_enable

动态shape图中,是否允许AI CPU算子和AI Core算子并行运行。

0

--compression_optimize_conf

压缩优化功能配置文件路径以及文件名。

不涉及

--buffer_optimize

是否开启数据缓存优化。

l2_optimize

--mdl_bank_path

加载模型调优后自定义知识库的路径。

${HOME}/Ascend/latest/data/aoe/custom/graph/<soc_version>

--sparsity

使能全局稀疏特性。

0

--precision_mode

设置网络模型的精度模式。

force_fp16

--precision_mode_v2

设置网络模型的精度模式。

fp16

--op_precision_mode

设置具体某个算子的精度模式,通过该参数可以为不同的算子设置不同的精度模式。

不涉及

--allow_hf32

是否启用HF32自动代替FP32数据类型的功能

针对Conv类算子,启用FP32转换为HF32;针对Matmul类算子,关闭FP32转换为HF32。

--modify_mixlist

混合精度场景下,修改算子使用混合精度名单。

不涉及

--op_select_implmode

设置网络模型中算子是高精度实现模式还是高性能实现模式。

high_performance

--optypelist_for_implmode

设置optype列表中算子的实现模式,算子实现模式包括high_precision、high_performance两种。

不涉及

--keep_dtype

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

不涉及

--customize_dtypes

模型编译时自定义算子的计算精度。

不涉及

--op_bank_path

加载AOE调优后自定义知识库的路径。

默认自定义知识库路径$HOME/Ascend/latest/data/aoe/custom/op

--op_debug_level

TBE算子编译debug功能开关。

0

--dump_mode

是否生成带shape信息的json文件。

0

--log

设置ATC模型转换过程中显示日志的级别。

null

--debug_dir

用于配置保存模型转换、网络迁移过程中算子编译生成的调试相关过程文件的路径,包括算子.o/.json/.cce等文件。

./kernel_meta

--op_compiler_cache_mode

用于配置算子编译磁盘缓存模式。

disable

--op_compiler_cache_dir

用于配置算子编译磁盘缓存的目录。

$HOME/atc_data

--display_model_info

模型编译时或对已有的离线模型,查询模型占用的关键资源信息、编译与运行环境等信息。

0

--shape_generalized_build_mode

图编译时Shape的编译方式。

该参数后续版本会废弃,请勿使用。

shape_precise

--status_check

控制编译算子时是否添加溢出检测逻辑。

0

--op_debug_config

使能Global Memory(DDR)内存检测功能的配置文件路径及文件名。

不涉及

--atomic_clean_policy

是否集中清理网络中所有atomic算子(含有atomic属性的算子都是atomic算子)占用的内存。

0

--deterministic

是否开启确定性计算。

0

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词