estructura DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC (directml.h)
Realiza la siguiente función de cuantificación lineal en cada elemento de InputTensor con respecto a su elemento correspondiente en ScaleTensor y ZeroPointTensor, colocando los resultados en el elemento correspondiente de 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)
La cuantificación implica la conversión a un tipo de datos de menor precisión para acelerar la aritmética. Es una manera común de aumentar el rendimiento a costa de precisión. Un grupo de valores de 8 bits se puede calcular más rápido que un grupo de valores de 32 bits puede.
Sintaxis
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;
};
Miembros
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene las entradas.
ScaleTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene las escalas.
Nota
Un valor de escala de 0 da como resultado un comportamiento indefinido.
Si InputTensor es INT32 , scaleTensor debe ser FLOAT32. De lo contrario, ScaleTensor debe tener el mismo DataType que InputTensor.
ZeroPointTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene el punto cero deseado para la cuantificación.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensor de salida en el que se van a escribir los resultados.
Disponibilidad
Este operador se introdujo en DML_FEATURE_LEVEL_1_0
.
Restricciones tensor
- InputTensor, OutputTensor, ScaleTensory ZeroPointTensor deben tener el mismo DimensionCount y Sizes.
- OutputTensor y ZeroPointTensor deben tener el mismo DataType.
Compatibilidad con Tensor
DML_FEATURE_LEVEL_6_2 y versiones posteriores
Tensor | Amable | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|
InputTensor | Entrada | De 1 a 8 | FLOAT32, FLOAT16, INT32 |
ScaleTensor | Entrada | De 1 a 8 | FLOAT32, FLOAT16 |
ZeroPointTensor | Entrada opcional | De 1 a 8 | INT8, UINT8 |
OutputTensor | Salida | De 1 a 8 | INT8, UINT8 |
DML_FEATURE_LEVEL_6_0 y versiones posteriores
Tensor | Amable | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|
InputTensor | Entrada | De 1 a 8 | FLOAT32, FLOAT16, INT32 |
ScaleTensor | Entrada | De 1 a 8 | FLOAT32, FLOAT16 |
ZeroPointTensor | Entrada | De 1 a 8 | INT8, UINT8 |
OutputTensor | Salida | De 1 a 8 | INT8, UINT8 |
DML_FEATURE_LEVEL_3_0 y versiones posteriores
Tensor | Amable | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|
InputTensor | Entrada | De 1 a 8 | FLOAT32, INT32 |
ScaleTensor | Entrada | De 1 a 8 | FLOAT32 |
ZeroPointTensor | Entrada | De 1 a 8 | INT8, UINT8 |
OutputTensor | Salida | De 1 a 8 | INT8, UINT8 |
DML_FEATURE_LEVEL_2_1 y versiones posteriores
Tensor | Amable | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|
InputTensor | Entrada | 4 | FLOAT32, INT32 |
ScaleTensor | Entrada | 4 | FLOAT32 |
ZeroPointTensor | Entrada | 4 | INT8, UINT8 |
OutputTensor | Salida | 4 | INT8, UINT8 |
DML_FEATURE_LEVEL_1_0 y versiones posteriores
Tensor | Amable | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|
InputTensor | Entrada | 4 | FLOAT32 |
ScaleTensor | Entrada | 4 | FLOAT32 |
ZeroPointTensor | Entrada | 4 | UINT8 |
OutputTensor | Salida | 4 | UINT8 |
Requisitos
Requisito | Valor |
---|---|
encabezado de |
directml.h |