Compartir a través de


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

Consulte también

DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC