Function: get_input_dims_v2

C Prototype

aclError aclmdlGetInputDimsV2(const aclmdlDesc *modelDesc, size_t index, aclmdlIODims *dims)

Python Function

dims, ret = acl.mdl.get_input_dims_v2(model_desc, index)

Function Usage

Obtains dimension information of the input tensor based on the model description.

If the model contains static AIPP configuration, call acl.mdl.get_input_dims or acl.mdl.get.input_dims_v2 to obtain the shape as required. The differences between the two APIs are as follows:

  • acl.mdl.get_input_dims: The obtained dimension values are consistent with those of the input image. For details, see Table 1.

  • acl.mdl.get_input_dims_v2: The obtained value of the H dimension is that of the input image multiplied by a coefficient, and the value of the C dimension varies according to the image format. For details, see Table 1 in acl.mdl.get_input_dims_v2. The multiplied dimension values are consistent with those obtained by calling acl.mdl.get_input_size_by_index.

Input Description

model_desc: int, pointer address of the data of the aclmdlDesc type.

Call acl.mdl.create_desc to create data of the aclmdlDesc type in advance.

index: int, sequence number of the input to be obtained, starting from 0.

Return Value

dims: dict, maximum supported combinations for dynamic-batch or dynamic-size scenarios based on the dictionary array. For details, see aclmdlIODims.

dims = {
        "name": xxx, #tensor name
"dimCount": xxx, #Number of dimensions in shape
"dims": [xx, xx, xx] # dimension information
        }

In dynamic batch/image size scenarios, if the batch size is –1 or the width and height are –1, the tensor shape is dynamic.

For example, if the format of the input tensor is NCHW, then the tensor dims [-1, 3, 224, 224] indicates that the batch size is dynamic, and the tensor dims [1, 3, -1, -1] indicates that the image size is dynamic. The italic numbers are examples only.

  • If the length of the tensor name is greater than 127, when dims["name"] is output, pyACL converts the tensor name to the acl_modelId_${id}_input_${index}_${random character string} format and establishes a mapping between the converted name and the original name, you can call acl.mdl.get_tensor_real_name to transfer the converted name and obtain the original name. (If the original name is passed to the API, the original name is obtained.)
    NOTE:

    If the name of the converted tensor conflicts with the name of an existing tensor in the model, _${random string} is added to the end of the converted name. Otherwise, no random string is added.

  • If the length of the tensor name is no longer than 127 characters, the tensor name is output when dims["name"] is output.

In the static AIPP scenario, this API applies only to the NHWC format. Table 1 describes the mapping between the supported input image formats and dims shapes.

ret: int, error code.

Restrictions

None

Table 1 Mapping between the supported image formats and dims shapes with dynamic AIPP

Image Format

dims Format

dims Shape

YUV420SP_U8

NHWC

"n,h*1.5,w,1"

XRGB8888_U8

NHWC

"n,h,w,4"

RGB888_U8

NHWC

"n,h,w,3"

YUV400_U8

NHWC

"n,h,w,1"

ARGB8888_U8

NHWC

"n,h,w,4"

YUYV_U8

NHWC

"n,h,w,2"

YUV422SP_U8

NHWC

"n,h*2,w,1"

AYUV444_U8

NHWC

"n,h,w,4"