hbDNNTensorProperties

typedef struct { hbDNNTensorShape validShape; hbDNNTensorShape alignedShape; int32_t tensorLayout; int32_t tensorType; hbDNNQuantiShift shift; hbDNNQuantiScale scale; hbDNNQuantiType quantiType; int32_t quantizeAxis; int32_t alignedByteSize; int32_t stride[HB_DNN_TENSOR_MAX_DIMENSIONS]; } hbDNNTensorProperties;

张量的信息。

  • 成员
成员名称描述
validShape

张量有效内容的形状。

alignedShape

张量对齐内容的形状。

tensorLayout

张量的排布形式。

tensorType

张量的类型。

shift

量化偏移量。

scale

量化缩放量。

quantiType

量化类型。

quantizeAxis

量化轴索引,仅按per-axis量化时生效。

alignedByteSize

张量对齐内容的内存大小。

stride

张量中validShape各维度步长,字节为单位。

注解

validShape 字段中若某些维度为 -1,则代表模型的 validShape 在该维度上为动态输入,需要您在创建任务前根据实际输入进行填写。

tensorLayout 字段为兼容J5版本,J6已经弃用。

alignedShape 字段为兼容J5版本,J6不建议使用,对齐大小推荐使用 stride

quantizeAxis 表示量化轴索引所在维度,仅按 per-axis 量化时生效,当数据按照 per-tensor 量化时 quantizeAxis 为负数。

通过接口获取的张量信息为模型要求的,您可以根据实际输入修改对应的张量信息,目前只允许修改 stridetensorType 的信息,而且必须符合要求。

stride

  1. 若您根据 stride 准备输入,则无需更改 stride

  2. 若您根据 validShape 准备输入,则需更改 stride 的值为 validShape 各维度跳跃的步长,推理库内部会对数据进行padding操作。

  3. 若从模型获取的 stride 中某些维度为 -1,则代表模型的 stride 在该维度上为动态输入,需要您在创建任务前根据实际输入进行填写。填写的约束请参考 动态输入介绍 章节。

tensorType

推理NV12输入的模型时,您可根据实际情况更改张量的 tensorType 属性为 HB_DNN_IMG_TYPE_NV12HB_DNN_IMG_TYPE_NV12_SEPARATE

alignedByteSize 表示tensor中占据的内存空间大小,一般可用来申请输入输出内存。