DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC 结构 (directml.h)
针对 ScaleTensor 和 ZeroPointTensor 中的对应元素,对 InputTensor 中的每个元素执行以下线性量化函数,将结果置于 OutputTensor 的相应元素中。
// For uint8 output, Min = 0, Max = 255
// For int8 output, Min = -128, Max = 127
f(input, scale, zero_point) = clamp(round(input / scale) + zero_point, Min, Max)
量化涉及转换为较低精度的数据类型,以加速算术。 这是以精度为代价提高性能的常用方法。 一组 8 位值的计算速度比一组 32 位值的计算速度要快。
语法
struct DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *ZeroPointTensor;
const DML_TENSOR_DESC *OutputTensor;
};
成员
InputTensor
类型: const DML_TENSOR_DESC*
包含输入的张量。
ScaleTensor
类型: const DML_TENSOR_DESC*
包含刻度的张量。 如果 InputTensor 为 INT32,则必须FLOAT32ScaleTensor。 否则,ScaleTensor 必须与 InputTensor 具有相同的DataType。
ZeroPointTensor
类型: const DML_TENSOR_DESC*
包含量化所需的零点的张量。
OutputTensor
类型: const DML_TENSOR_DESC*
要向其写入结果的输出张量。
可用性
此运算符是在 中引入的 DML_FEATURE_LEVEL_1_0
。
张量约束
- InputTensor、 OutputTensor、 ScaleTensor 和 ZeroPointTensor 必须具有相同的 DimensionCount 和 Size。
- OutputTensor 和 ZeroPointTensor 必须具有相同的 数据类型。
Tensor 支持
DML_FEATURE_LEVEL_6_2及更高版本
张 | 种类 | 支持的维度计数 | 支持的数据类型 |
---|---|---|---|
InputTensor | 输入 | 1 到 8 | FLOAT32、FLOAT16、INT32 |
ScaleTensor | 输入 | 1 到 8 | FLOAT32、FLOAT16 |
ZeroPointTensor | 可选输入 | 1 到 8 | INT8、UINT8 |
OutputTensor | 输出 | 1 到 8 | INT8、UINT8 |
DML_FEATURE_LEVEL_6_0及更高版本
张 | 种类 | 支持的维度计数 | 支持的数据类型 |
---|---|---|---|
InputTensor | 输入 | 1 到 8 | FLOAT32、FLOAT16、INT32 |
ScaleTensor | 输入 | 1 到 8 | FLOAT32、FLOAT16 |
ZeroPointTensor | 输入 | 1 到 8 | INT8、UINT8 |
OutputTensor | 输出 | 1 到 8 | INT8、UINT8 |
DML_FEATURE_LEVEL_3_0及更高版本
张 | 种类 | 支持的维度计数 | 支持的数据类型 |
---|---|---|---|
InputTensor | 输入 | 1 到 8 | FLOAT32,INT32 |
ScaleTensor | 输入 | 1 到 8 | FLOAT32 |
ZeroPointTensor | 输入 | 1 到 8 | INT8、UINT8 |
OutputTensor | 输出 | 1 到 8 | INT8、UINT8 |
DML_FEATURE_LEVEL_2_1及更高版本
张 | 种类 | 支持的维度计数 | 支持的数据类型 |
---|---|---|---|
InputTensor | 输入 | 4 | FLOAT32,INT32 |
ScaleTensor | 输入 | 4 | FLOAT32 |
ZeroPointTensor | 输入 | 4 | INT8、UINT8 |
OutputTensor | 输出 | 4 | INT8、UINT8 |
DML_FEATURE_LEVEL_1_0 及更高版本
张 | 种类 | 支持的维度计数 | 支持的数据类型 |
---|---|---|---|
InputTensor | 输入 | 4 | FLOAT32 |
ScaleTensor | 输入 | 4 | FLOAT32 |
ZeroPointTensor | 输入 | 4 | UINT8 |
OutputTensor | 输出 | 4 | UINT8 |
要求
标头 | directml.h |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈