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,
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 |