DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC结构 (directml.h)
对 InputTensor 中每个元素执行以下线性量子化函数,使其在 scaleTensor 中对应元素,ZeroPointTensor中,将结果置于 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*
包含刻度的张量。
注意
小数位数值为 0 会导致未定义的行为。
如果 InputTensorINT32,则必须 FLOAT32ScaleTensor。 否则,ScaleTensor 必须与 InputTensor具有相同的 DataType。
ZeroPointTensor
类型:const DML_TENSOR_DESC*
包含量化所需的零点的张量。
OutputTensor
类型:const DML_TENSOR_DESC*
要向其写入结果的输出张量。
可用性
此运算符是在 DML_FEATURE_LEVEL_1_0
中引入的。
Tensor 约束
- InputTensor、OutputTensor、ScaleTensor,ZeroPointTensor 必须具有相同 的 DimensionCount 和 大小。
- OutputTensor 和 ZeroPointTensor 必须具有相同的 DataType。
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 |