aclmdlGetInputDynamicDims

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持
  • IPV350:支持

功能说明

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

函数原型

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

约束说明

只有在模型编译时设置了动态维度的分档信息后,才可以调用该接口获取动态维度信息。

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