---
title: 函数：get_input_dynamic_dims
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendgraphapi/aclpythondevg_01_0217.html
sourcePath: /source/zh/canncommercial/900/API/ascendgraphapi/aclpythondevg_01_0217.html
indexId: 44fe8701888a6f3339d4d5c11b832990336a30fe38b52b5b2bf92dd4e9babbde75
---
# 函数：get_input_dynamic_dims

#### 产品支持情况

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


#### 功能说明

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


#### 函数原型

- C函数原型
  1 aclError aclmdlGetInputDynamicDims(const aclmdlDesc *modelDesc, size_t index, aclmdlIODims *dims, size_t gearCount)

- python函数
  1 dims_out, ret = acl.mdl.get_input_dynamic_dims(model_desc, index, gear_count)


#### 参数说明

| 参数名 | 说明 |
| --- | --- |
| model\_desc | int，aclmdlDesc类型数据的指针地址。 需提前调用acl.mdl.create\_desc接口创建aclmdlDesc类型的数据。 |
| index | int，预留参数，当前未使用，固定设置为\-1。 |
| gear\_count | int，模型支持的动态维度档位数，需要先通过acl.mdl.get\_input\_dynamic\_gear\_count接口获取。 |


#### 返回值说明

| 返回值 | 说明 |
| --- | --- |
| dims\_out | list，获取输入的动态维度信息。 “dims\_out”参数是一个列表，模型有几个输入，则该列表就有几个元素。列表中的每个元素都是一个aclmdlIODims的字典，“aclmdlIODims”字典中的dims是一个列表，该列表中的每个元素对应每一档中的具体值。 例如： dims\_out, ret = acl.mdl.get\_input\_dynamic\_dims(model\_desc, \-1, gear\_count) |
| ret | int，错误码。 返回0表示成功。 返回其它值(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/runtimeapi/aclpythondevg\_01\_0911.html)表示失败。 |


#### 约束说明

只有在模型转换时通过“--dynamic_dims”参数设置了分档信息后，才可以调用该接口获取动态维度信息。

例如，模型有三个输入，分别为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)
