---
title: --dynamic_dims
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/atctool/atlasatcparam_16_0020.html
sourcePath: /source/zh/canncommercial/900/devaids/atctool/atlasatcparam_16_0020.html
indexId: 43d04ab14576f342b51f32f2ef75d60b19755f65ac8971ab6bf67027a334188172
---
# --dynamic_dims


#### 产品支持情况

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


#### 功能说明

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

为支持Transformer等网络在输入格式的维度不确定的场景，通过该参数实现ND格式下任意维度的档位设置。ND表示支持任意格式。


#### 关联参数

该参数需要与--input_shape、--input_format配合使用，不能与--dynamic_batch_size、--dynamic_image_size、--input_shape_range、--insert_op_conf同时使用。


#### 参数取值

参数值：通过"dim1,dim2,dim3;dim4,dim5,dim6;dim7,dim8,dim9"的形式设置。

参数值格式：所有档位必须放在双引号中，档位之间使用英文分号分隔，每档内参数使用英文逗号分隔；每档内的dim值与--input_shape参数中的-1标识的参数依次对应，--input_shape参数中有几个-1，则每档必须设置几个维度。

参数值约束：

- 针对如下产品，档位数约束为：档位数取值范围为(1,100]，即必须设置至少2个档位，最多支持100档配置，建议配置为3~4档。
  Atlas A3 训练系列产品 / Atlas A3 推理系列产品

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

  Atlas 200I/500 A2 推理产品

  Atlas 推理系列产品

  Atlas 训练系列产品

- 针对Atlas 350 加速卡，档位数约束为：档位数取值范围为(1, 256]，即必须设置至少2个档位，最多支持256档配置，建议配置为3~4档。


#### 推荐配置及收益

无。


#### 示例

- 若网络模型只有一个输入：
  每档中的dim值与--input_shape参数中的-1标识的参数依次对应，--input_shape参数中有几个-1，则每档必须设置几个维度。例如：

  ATC参数取值为：

```
--input_shape="data:1,-1"  --dynamic_dims="4;8;16;64" --input_format=ND
```


  则ATC在编译模型时，支持的data算子的shape为1,4; 1,8; 1,16; 1,64。

  ATC参数取值为：

```
--input_shape="data:1,-1,-1"  --dynamic_dims="1,2;3,4;5,6;7,8" --input_format=ND
```


  则ATC在编译模型时，支持的data算子的shape为1,1,2; 1,3,4; 1,5,6; 1,7,8。

- 若网络模型有多个输入：
  每档中的dim值与网络模型输入参数中的-1标识的参数依次对应，网络模型输入参数中有几个-1，则每档必须设置几个维度。例如网络模型有三个输入，分别为data(1,1,40,T)，label(1,T)，mask(T,T) ，其中T为动态可变。则配置示例为：

```
--input_shape="data:1,1,40,-1;label:1,-1;mask:-1,-1"  --dynamic_dims="20,20,1,1;40,40,2,2;80,60,4,4" --input_format=ND
```


  在ATC编译模型时，支持的输入dims组合档数分别为：

  第0档：data(1,1,40,20)+label(1,20)+mask(1,1)

  第1档：data(1,1,40,40)+label(1,40)+mask(2,2)

  第2档：data(1,1,40,80)+label(1,60)+mask(4,4)


#### 依赖约束

- 使用约束：
  不支持含有过程动态shape算子（网络中间层shape不固定）的网络。

- 接口约束：
如果模型转换时通过该参数设置了动态维度，则使用应用工程进行模型推理时，在模型执行接口之前：

  - 使用aclmdlSetInputDynamicDims接口，用于设置真实的维度。
  - 不使用aclmdlSetInputDynamicDims接口，则模型执行时，默认按照动态维度设置范围的最大值进行赋值。
接口详细说明请参见“ aclmdlSetInputDynamicDims(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendgraphapi/aclcppdevg_03_0312.html)”章节。
