Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Valores quantizados médios entre os elementos dentro da janela deslizante sobre o tensor de entrada. Este operador é matematicamente equivalente a desquantificar as entradas, em seguida, executar o agrupamento médio e, em seguida, quantificar a saída.
Função Desquantificar
f(Input, Scale, ZeroPoint) = (Input - ZeroPoint) * Scale
Função Quantize
f(Input, Scale, ZeroPoint) = clamp(round(Input / Scale) + ZeroPoint, Min, Max)
Importante
Essa API está disponível como parte do pacote redistribuível autônomo do DirectML (consulte Microsoft.AI.DirectML versão 1.13 e posterior. Consulte também o histórico de versões do DirectML.
Sintaxe
struct DML_QUANTIZED_LINEAR_AVERAGE_POOLING_OPERATOR_DESC
{
const DML_TENSOR_DESC* InputTensor;
const DML_TENSOR_DESC* InputScaleTensor;
_Maybenull_ const DML_TENSOR_DESC* InputZeroPointTensor;
const DML_TENSOR_DESC* OutputScaleTensor;
_Maybenull_ const DML_TENSOR_DESC* OutputZeroPointTensor;
const DML_TENSOR_DESC* OutputTensor;
UINT DimensionCount;
_Field_size_(DimensionCount) const UINT* Strides;
_Field_size_(DimensionCount) const UINT* WindowSize;
_Field_size_(DimensionCount) const UINT* StartPadding;
_Field_size_(DimensionCount) const UINT* EndPadding;
_Field_size_(DimensionCount) const UINT* Dilations;
BOOL IncludePadding;
};
Membros
InputTensor
Tipo: const DML_TENSOR_DESC*
Um tensor de entrada de tamanhos{ BatchCount, ChannelCount, Height, Width } para 4D e { BatchCount, ChannelCount, Depth, Height, Weight } para 5D.
InputScaleTensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém os dados da escala InputTensor . As dimensões esperadas de InputScaleTensor são { 1, 1, 1, 1 } se a quantização por tensor for necessária, ou { 1, ChannelCount, 1, 1 } se a quantização por canal for necessária. Esses valores de escala são usados para desquantificar os valores de InputTensor .
Observação
Um valor de escala de 0 resulta em comportamento indefinido.
InputZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Um tensor opcional que contém os dados de ponto zero InputTensor . As dimensões esperadas de InputZeroPointTensor são { 1, 1, 1, 1 } se a quantização por tensor for necessária ou { 1, ChannelCount, 1, 1 } se a quantização por canal for necessária. Esses valores de ponto zero são usados para desquantificar os valores de InputTensor .
OutputScaleTensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém os dados da escala OutputTensor . As dimensões esperadas de OutputScaleTensor são { 1, 1, 1, 1 } se a quantização por tensor for necessária, ou { 1, ChannelCount, 1, 1 } se a quantização por canal for necessária. Esses valores de escala são usados para quantificar os valores de OutputTensor .
Observação
Um valor de escala de 0 resulta em comportamento indefinido.
OutputZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Um tensor opcional que contém os dados de ponto zero OutputTensor . As dimensões esperadas de OutputZeroPointTensor são { 1, 1, 1, 1 } se a quantização por tensor for necessária, ou { 1, ChannelCount, 1, 1 } se a quantização por canal for necessária. Esse valor de ponto zero é usado para quantificar os valores OutputTensor .
OutputTensor
Tipo: const DML_TENSOR_DESC*
Uma descrição do tensor de saída. Os tamanhos do tensor de saída podem ser calculados da seguinte forma.
OutputTensor->Sizes[0] = InputTensor->Sizes[0];
OutputTensor->Sizes[1] = InputTensor->Sizes[1];
for (UINT i = 0; i < DimensionCount; ++i) {
UINT PaddedSize = InputTensor->Sizes[i + 2] + StartPadding[i] + EndPadding[i];
OutputTensor->Sizes[i + 2] = (PaddedSize - WindowSizes[i]) / Strides[i] + 1;
}
DimensionCount
Tipo: UINT
O número de dimensões espaciais do tensor de entrada InputTensor, que também corresponde ao número de dimensões da janela deslizante WindowSize. Esse valor também determina o tamanho das matrizes Strides, StartPadding e EndPadding . Ele deve ser definido como 2 quando InputTensor é 4D e 3 quando é um tensor 5D.
Strides
Tipo: _Field_size_(DimensionCount) const UINT*
Os passos para as dimensões da janela deslizante de tamanhos { Height, Width } quando o DimensionCount é definido como 2 ou { Depth, Height, Width } quando definido como 3.
WindowSize
Tipo: _Field_size_(DimensionCount) const UINT*
As dimensões da janela deslizante quando { Height, Width }DimensionCount é definido como 2 ou { Depth, Height, Width } quando definido como 3.
StartPadding
Tipo: _Field_size_(DimensionCount) const UINT*
O número de elementos de preenchimento a serem aplicados ao início de cada dimensão espacial do tensor de entrada InputTensor. Os valores estão em { Height, Width } quando DimensionCount é definido como 2 ou { Depth, Height, Width } quando definido como 3.
EndPadding
Tipo: _Field_size_(DimensionCount) const UINT*
O número de elementos de preenchimento a serem aplicados ao final de cada dimensão espacial do tensor de entrada InputTensor. Os valores estão em { Height, Width } quando DimensionCount é definido como 2 ou { Depth, Height, Width } quando definido como 3.
Dilations
Tipo: _Field_size_(DimensionCount) const UINT*
Os valores para cada dimensão espacial do tensor de entrada InputTensor pelo qual um elemento dentro da janela deslizante é selecionado para cada elemento desse valor. Os valores estão em { Height, Width } quando DimensionCount é definido como 2 ou { Depth, Height, Width } quando definido como 3.
IncludePadding
Tipo: BOOL
Indica se os elementos de preenchimento devem ser incluídos ao redor das bordas espaciais ao calcular o valor médio em todos os elementos dentro da janela deslizante. Quando o valor é definido como FALSE, os elementos de preenchimento não são contados como parte do valor divisor do cálculo de média.
Disponibilidade
Este operador foi introduzido em DML_FEATURE_LEVEL_6_2.
Restrições de tensores
- InputTensor e OutputTensor devem ter o mesmo DimensionCount.
- InputTensor e InputZeroPointTensor devem ter o mesmo DataType.
- OutputTensor e OutputZeroPointTensor devem ter o mesmo DataType.
Suporte tensor
| Tensor | Amável | Contagens de dimensões suportadas | Tipos de dados suportados |
|---|---|---|---|
| InputTensor | Entrada | 4 a 5 anos | INT8, UINT8 |
| InputScaleTensor | Entrada | 1 a 5 anos | FLOAT32 |
| InputZeroPointTensor | Entrada opcional | 1 a 5 anos | INT8, UINT8 |
| OutputScaleTensor | Entrada | 1 a 5 anos | FLOAT32 |
| OutputZeroPointTensor | Entrada opcional | 1 a 5 anos | INT8, UINT8 |
| OutputTensor | Resultado | 4 a 5 anos | INT8, UINT8 |
Requerimentos
| Cabeçalho | DirectML.H |