aclmdlGetInputDimsV2
产品支持情况
产品  | 
是否支持  | 
|---|---|
√  | 
|
√  | 
|
√  | 
|
√  | 
|
√  | 
|
√  | 
功能说明
根据模型描述信息获取模型的输入tensor的维度信息。
如果模型中含有静态AIPP配置信息,您可以根据实际需要选择aclmdlGetInputDims接口或aclmdlGetInputDimsV2接口查询维度信息,两者的区别在于:
- 通过aclmdlGetInputDims接口获取的维度信息,各维度的值与输入图像的各维度的值保持一致,详细规则如表1所示。
 - 通过aclmdlGetInputDimsV2接口获取的维度信息,H维度的值 = 输入图像的H维度值*系数,不同图片格式下C维度的值不同,详细规则如aclmdlGetInputDimsV2接口处的表1所示,且各维度值相乘的结果值与通过aclmdlGetInputSizeByIndex接口获取的值保持一致。
 
函数原型
aclError aclmdlGetInputDimsV2(const aclmdlDesc *modelDesc, size_t index, aclmdlIODims *dims)
参数说明
参数名  | 
输入/输出  | 
说明  | 
|---|---|---|
modelDesc  | 
输入  | 
aclmdlDesc类型的指针。 需提前调用aclmdlCreateDesc接口创建aclmdlDesc类型的数据。  | 
index  | 
输入  | 
指定获取第几个输入的Dims,index值从0开始。  | 
dims  | 
输出  | 
输入维度信息的指针。 针对动态Batch、动态分辨率(宽高)的场景,输入tensor的dims中batch size或宽高为-1,表示其动态可变。例如,输入tensor的format为NCHW,在动态Batch场景下,动态可变的输入tensor的dims为[-1,3,224,224];在动态分辨率场景下,动态可变的输入tensor的dims为[1,3,-1,-1]。举例中的斜体部分以实际情况为准。 若tensor的name长度大于127,则在输出的dims.name时,接口会将tensor的name转换为“acl_modelId_${id}_input_${index}_${随机字符串} ”格式(如果转换后的tensor的name与模型中已有的tensor的name冲突,则会在转换后的name尾部增加“_${随机字符串} ”,否则不会增加随机字符串),并在转换后的name与原name之间建立映射关系,用户可调用aclmdlGetTensorRealName接口,传入转换后的name,获取原name(若向接口传入原name,则获取的还是原name);若tensor的name长度小于或等于127,则在输出的dims.name时,按tensor的name输出。 针对静态AIPP场景,本接口针对不同格式的图像,对应NHWC的Format格式,当前接口中明确各个维度的定义规则,如表1所示。  | 
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。