hbDNNTensorProperties

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

张量的信息。

  • 成员
成员名称描述
validShape

张量有效内容的形状。

tensorType

张量的类型。

scale

量化缩放量。

quantiType

量化类型。

quantizeAxis

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

alignedByteSize

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

stride

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

注解

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

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

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

stride

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

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

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

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