Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Médias de valores quantificados entre os elementos dentro da janela deslizante sobre o tensor de entrada. Esse operador é matematicamente equivalente a desquantizar as entradas, executar pooling médio e, em seguida, quantificar a saída.
Desquantizar função
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 de 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 de 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 desquantizar os valores InputTensor .
Observação
Um valor de escala de 0 resulta em um 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 é necessária ou { 1, ChannelCount, 1, 1 } se a quantização por canal é necessária. Esses valores de ponto zero são usados para desquantizar os valores inputTensor .
OutputScaleTensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém os dados de 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 OutputTensor .
Observação
Um valor de escala de 0 resulta em um 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 computados da seguinte maneira.
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 for 4D e 3 quando for um tensor 5D.
Strides
Tipo: _Field_size_(DimensionCount) const UINT*
Os passos para as dimensões deslizantes da janela 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 em { Height, Width } quando 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 InputTensor de tensor de entrada. 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 InputTensor de tensor de entrada. 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 de cada dimensão espacial do InputTensor de tensor de entrada 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
Esse operador foi introduzido no DML_FEATURE_LEVEL_6_2.
Restrições do Tensor
- 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 ao Tensor
| Tensor | Tipo | Contagens de dimensões com suporte | Tipos de dados com suporte |
|---|---|---|---|
| Tensor de entrada | Entrada | 4 a 5 | INT8, UINT8 |
| Tensor de Escala de Entrada | Entrada | 1 a 5 | FLOAT32 |
| InputZeroPointTensor | Entrada opcional | 1 a 5 | INT8, UINT8 |
| Tensor de Escala de Saída | Entrada | 1 a 5 | FLOAT32 |
| SaídaZeroPointTensor | Entrada opcional | 1 a 5 | INT8, UINT8 |
| Tensor de saída | Saída | 4 a 5 | INT8, UINT8 |
Requisitos
| cabeçalho | directml.h |