Compartilhar via


DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC estrutura (directml.h)

Executa a seguinte função de quantização linear em cada elemento em InputTensor em relação ao elemento correspondente em ScaleTensor e ZeroPointTensor, colocando os resultados no elemento correspondente 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)

A quantificação envolve a conversão em um tipo de dados de precisão inferior para acelerar a aritmética. É uma maneira comum de aumentar o desempenho ao custo da precisão. Um grupo de valores de 8 bits pode ser calculado mais rápido do que um grupo de valores de 32 bits pode.

Sintaxe

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;
};

Membros

InputTensor

Tipo: const DML_TENSOR_DESC*

O tensor que contém as entradas.

ScaleTensor

Tipo: const DML_TENSOR_DESC*

O tensor que contém as escalas.

Nota

Um valor de escala de 0 resulta em um comportamento indefinido.

Se InputTensor for INT32, ScaleTensor deverá ser FLOAT32. Caso contrário, ScaleTensor deve ter a mesma DataType que InputTensor.

ZeroPointTensor

Tipo: const DML_TENSOR_DESC*

O tensor que contém o ponto zero desejado para a quantificação.

OutputTensor

Tipo: const DML_TENSOR_DESC*

O tensor de saída para o qual gravar os resultados.

Disponibilidade

Este operador foi introduzido no DML_FEATURE_LEVEL_1_0.

Restrições do Tensor

  • InputTensor, OutputTensor, ScaleTensor e ZeroPointTensor devem ter os mesmos DimensionCount e Sizes.
  • OutputTensor e ZeroPointTensor devem ter o mesmo datatype.

Suporte ao Tensor

DML_FEATURE_LEVEL_6_2 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada 1 a 8 FLOAT32, FLOAT16, INT32
ScaleTensor Entrada 1 a 8 FLOAT32, FLOAT16
ZeroPointTensor Entrada opcional 1 a 8 INT8, UINT8
OutputTensor Saída 1 a 8 INT8, UINT8

DML_FEATURE_LEVEL_6_0 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada 1 a 8 FLOAT32, FLOAT16, INT32
ScaleTensor Entrada 1 a 8 FLOAT32, FLOAT16
ZeroPointTensor Entrada 1 a 8 INT8, UINT8
OutputTensor Saída 1 a 8 INT8, UINT8

DML_FEATURE_LEVEL_3_0 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada 1 a 8 FLOAT32, INT32
ScaleTensor Entrada 1 a 8 FLOAT32
ZeroPointTensor Entrada 1 a 8 INT8, UINT8
OutputTensor Saída 1 a 8 INT8, UINT8

DML_FEATURE_LEVEL_2_1 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada 4 FLOAT32, INT32
ScaleTensor Entrada 4 FLOAT32
ZeroPointTensor Entrada 4 INT8, UINT8
OutputTensor Saída 4 INT8, UINT8

DML_FEATURE_LEVEL_1_0 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada 4 FLOAT32
ScaleTensor Entrada 4 FLOAT32
ZeroPointTensor Entrada 4 UINT8
OutputTensor Saída 4 UINT8

Requisitos

Requisito Valor
cabeçalho directml.h

Consulte também

DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC