Rspress

# #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` 为负数。

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

`stride`：

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

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

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

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

页面目录