Function: get_input_dims

Applicability

Product

Supported (√/x)

Atlas A3 training products/Atlas A3 inference products

Atlas A2 training products/Atlas A2 inference products

Atlas training products

Atlas inference products

Atlas 200I/500 A2 inference products

Function Usage

Obtains the shape (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.

Prototype

  • C Prototype
    1
    aclError aclmdlGetInputDims(const aclmdlDesc *modelDesc, size_t index, aclmdlIODims *dims)
    
  • Python Function
    1
    dims, ret = acl.mdl.get_input_dims(model_desc, index)
    

Parameter Description

Parameter

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 whose dims is to be obtained, starting at 0.

Return Value Description

Return Value

Description

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 the shape
        "dims": [xx, xx, xx]   # Shape
        }

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, it 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.

ret

Int, error code.

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

Image Format

dims Format

dims Shape

YUV420SP_U8

NHWC

n,h,w,c

XRGB8888_U8

NHWC

n,h,w,c

RGB888_U8

NHWC

n,h,w,c

YUV400_U8

NHWC

n,h,w,c

ARGB8888_U8

NHWC

n,h,w,c

YUYV_U8

NHWC

n,h,w,c

YUV422SP_U8

NHWC

n,h,w,c

AYUV444_U8

NHWC

n,h,w,c