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

#### 产品支持情况

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


#### 功能说明

如果模型输入或输出的Shape是动态的，在模型执行之前调用本接口设置模型输入或输出的Tensor描述信息。


#### 函数原型

- C函数原型
  1 aclError aclmdlSetDatasetTensorDesc(aclmdlDataset *dataset, aclTensorDesc *tensorDesc, size_t index)

- python函数
  1 dataset, ret = acl.mdl.set_dataset_tensor_desc(dataset, tensor_desc, index)


#### 参数说明

| 参数名 | 说明 |
| --- | --- |
| dataset | int，待增加aclTensorDesc的aclmdlDataset指针地址，表示模型执行的输入或输出数据结构。 需提前调用acl.mdl.create\_dataset接口创建aclmdlDataset类型的数据，再调用acl.mdl.add\_dataset\_buffer接口向aclmdlDataset中增加aclDataBuffer。 |
| tensor\_desc | int，待增加的aclTensorDesc指针地址，表示模型执行时对应的输入或输出的Tensor描述。 需提前调用acl.create\_tensor\_desc接口创建aclTensorDesc类型的数据，当前仅支持设置模型输入、输出Tensor描述信息中的维度信息（对应acl.create\_tensor\_desc接口中的代表维度个数的numDims参数、代表维度大小的dims参数），设置数据类型、Format无效。 此处设置的维度个数、维度大小必须在模型构建时设置的输入Shape范围内，模型构建的详细说明请参见模型构建。 |
| index | int，表示第几个输入或输出的序号。 模型存在多个输入、输出时，为避免序号出错，可以先调用acl.mdl.get\_input\_name\_by\_index、acl.mdl.get\_output\_name\_by\_index接口获取输入、输出的名称，然后根据输入、输出名称所对应的“index”来设置。 |


#### 返回值说明

| 返回值 | 说明 |
| --- | --- |
| dataset | int，待增加aclTensorDesc的aclmdlDataset指针地址，表示模型执行的输入或输出数据结构。 |
| ret | int，错误码 返回0表示成功。 返回其它值(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/runtimeapi/aclpythondevg\_01\_0911.html)表示失败。 |


#### 约束说明

对同一个模型，acl.mdl.set_dynamic_batch_size接口、acl.mdl.set_dynamic_hw_size接口、acl.mdl.set_input_dynamic_dims接口、acl.mdl.set_dataset_tensor_desc接口，只能调用其中一个接口。
