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

#### 产品支持情况

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


#### 功能说明

如果模型输入的Shape是动态的、输入数据Format为ND格式（ND表示支持任意格式），在模型执行前调用本接口设置模型推理时具体维度的值。


#### 函数原型

```
aclError aclmdlSetInputDynamicDims(uint32_t modelId, aclmdlDataset *dataset, size_t index, const aclmdlIODims *dims)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| modelId | 输入 | 模型ID。 调用aclmdlLoadFromFile接口/aclmdlLoadFromMem接口/aclmdlLoadFromFileWithMem接口/aclmdlLoadFromMemWithMem接口加载模型成功后，会返回模型ID。 |
| dataset | 输入&输出 | 模型推理的输入数据的指针。类型定义请参见aclmdlDataset。 使用aclmdlDataset类型的数据描述模型推理时的输入数据，输入的内存地址、内存大小用aclDataBuffer(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/runtimeapi/aclcppdevg\_03\_1430.html)类型的数据来描述。 |
| index | 输入 | 标识动态维度的输入index。 需调用aclmdlGetInputIndexByName接口获取，输入名称固定为ACL\_DYNAMIC\_TENSOR\_NAME。 |
| dims | 输入 | 具体某一档上的所有维度信息的指针。类型定义请参见aclmdlIODims。 此处设置的动态维度的值只能是模型构建时设置的档位中的某一档。 例如：使用ATC工具进行模型转换时，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"，若输入数据的真实维度为（1,1,40,20,1,20,1,1），则dims结构体信息的填充示例如下（name暂不使用）： dims.dimCount = 8 dims.dims[0] = 1 dims.dims[1] = 1 dims.dims[2] = 40 dims.dims[3] = 20 dims.dims[4] = 1 dims.dims[5] = 20 dims.dims[6] = 1 dims.dims[7] = 1 如果不清楚模型构建时的动态维度档位，也可以调用aclmdlGetInputDynamicDims接口获取指定模型支持的动态维度档位数以及每一档中的值。 |


#### 返回值说明

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


#### 接口调用示例

接口调用流程及示例，参见模型动态Shape输入推理(https://www.hiascend.comdocument/detail/zh/canncommercial/900/programug/acldevg/aclcppdevg_000040.html)。
