---
title: aclmdlGetInputDynamicDims
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendgraphapi/aclcppdevg_03_1468.html
sourcePath: /source/zh/canncommercial/900/API/ascendgraphapi/aclcppdevg_03_1468.html
indexId: ca27bc242aee6c4f287cc21105657377b8cb7fccafee7ed5bcda0df4fc267b3b72
---
# aclmdlGetInputDynamicDims

#### 产品支持情况

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


#### 功能说明

根据模型描述信息获取模型的输入所支持的动态维度信息。


#### 函数原型

```
aclError aclmdlGetInputDynamicDims(const aclmdlDesc *modelDesc, size_t index, aclmdlIODims *dims, size_t gearCount)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| modelDesc | 输入 | aclmdlDesc类型的指针。 需提前调用aclmdlCreateDesc接口创建aclmdlDesc类型的数据。 |
| index | 输入 | 预留参数，当前未使用，固定设置为\-1。 |
| dims | 输出 | 输入的动态维度信息的指针。类型定义请参见aclmdlIODims。 dims参数是一个数组，数组中的每个元素指向aclmdlIODims结构，aclmdlIODims结构体中的dims参数也是一个数组，该数组中的每个元素对应每一档中的具体值。 例如： aclmdlIODims dims[gearCount]; aclmdlGetInputDynamicDims(model.modelDesc, \-1, dims, gearCount); |
| gearCount | 输入 | 模型支持的动态维度档位数，需要先通过aclmdlGetInputDynamicGearCount接口获取。 |


#### 返回值说明

返回0表示成功，返回其他值表示失败，请参见aclError。


#### 约束说明

只有在模型构建时设置了动态维度的分档信息后，才可以调用该接口获取动态维度信息。模型构建的详细说明请参见模型编译(https://www.hiascend.comdocument/detail/zh/canncommercial/900/programug/acldevg/aclcppdevg_000027.html)。

例如，模型有三个输入，分别为data(1, 1, 40, -1)，label(1, -1)，mask(-1, -1) ， 其中-1表示动态可变。在模型转换时，dynamic_dims参数的配置示例为：--dynamic_dims="20,20,1,1;40,40,2,2;80,60,4,4"，则通过本接口获取的动态维度信息为（aclmdlIODims结构体内的name暂不使用）：

- 第0档：

  - aclmdlIODims结构体内dimCount：8，表示所有输入tensor的维度数量之和
  - aclmdlIODims结构体内的dims：“1,1,40,20,1,20,1,1”，表示data(1,1,40,20)+label(1,20)+mask(1,1)
- 第1档：

  - aclmdlIODims结构体内dimCount：8，表示所有输入tensor的维度数量之和
  - aclmdlIODims结构体内的dims：“1,1,40,40,1,40,2,2”，表示data(1,1,40,40)+label(1,40)+mask(2,2)
- 第2档：

  - aclmdlIODims结构体内dimCount：8，表示所有输入tensor的维度数量之和
  - aclmdlIODims结构体内的dims：“1,1,40,80,1,60,4,4”，表示data(1,1,40,80)+label(1,60)+mask(4,4)
