Compartilhar via


estrutura DML_AVERAGE_POOLING_GRAD_OPERATOR_DESC (directml.h)

Calcula gradientes de backpropagation para pooling médio (consulte DML_AVERAGE_POOLING_OPERATOR_DESC).

Considere um 2x2 DML_AVERAGE_POOLING_OPERATOR_DESC, sem preenchimento e um passo de 1, que executa o seguinte.

InputTensor             OutputTensor
[[[[1, 2, 3],   AvgPool  [[[[3, 4],
   [4, 5, 6],     -->       [6, 7]]]]
   [7, 8, 9]]]]

Cada janela 2x2 no tensor de entrada é média para produzir um elemento da saída (lendo zeros para elementos além da borda). Aqui está um exemplo da saída de DML_AVERAGE_POOLING_GRAD_OPERATOR_DESC determinados parâmetros semelhantes.

InputGradientTensor            OutputGradientTensor
  [[[[1, 2],     AvgPoolGrad  [[[[0.25, 0.75, 0.5],
     [3, 4]]]]       -->         [   1,  2.5, 1.5],
                                 [0.75, 1.75,   1]]]]

Observe que os valores no OutputGradientTensor representam o contribuições ponderado desse elemento para o OutputTensor durante o operador de DML_AVERAGE_POOLING_OPERATOR_DESC original.

Sintaxe

struct DML_AVERAGE_POOLING_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputGradientTensor;
  const DML_TENSOR_DESC *OutputGradientTensor;
  UINT                  DimensionCount;
  const UINT            *Strides;
  const UINT            *WindowSize;
  const UINT            *StartPadding;
  const UINT            *EndPadding;
  BOOL                  IncludePadding;
};

Membros

InputGradientTensor

Tipo: const DML_TENSOR_DESC*

O tensor de gradiente de entrada. Normalmente, isso é obtido da saída de backpropagation de uma camada anterior. Normalmente, esse tensor teria os mesmos tamanhos que a saída do DML_AVERAGE_POOLING_OPERATOR_DESC correspondente no passe para frente.

OutputGradientTensor

Tipo: const DML_TENSOR_DESC*

Um tensor de saída que contém os gradientes backpropagated. Normalmente, esse tensor teria os mesmos tamanhos que a entrada do DML_AVERAGE_POOLING_OPERATOR_DESC correspondente no passe para frente.

DimensionCount

Tipo: UINT

O número de elementos nas matrizes Strides, WindowSize, StartPadding e EndPadding . Esse valor deve ser igual à contagem de dimensões espaciais. A contagem de dimensões espaciais será 2 se tensores 4D forem fornecidos ou 3 se tensores 5D forem fornecidos.

Strides

Tipo: _Field_size_(DimensionCount) const UINT*

Confira Passos em DML_AVERAGE_POOLING_OPERATOR_DESC.

WindowSize

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte WindowSize no DML_AVERAGE_POOLING_OPERATOR_DESC.

StartPadding

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte StartPadding no DML_AVERAGE_POOLING_OPERATOR_DESC.

EndPadding

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte EndPadding em DML_AVERAGE_POOLING_OPERATOR_DESC.

IncludePadding

Tipo: BOOL

Consulte IncludePadding no DML_AVERAGE_POOLING_OPERATOR_DESC.

Disponibilidade

Esse operador foi introduzido em DML_FEATURE_LEVEL_3_0.

Restrições do Tensor

InputGradientTensor e OutputGradientTensor devem ter os mesmos DataType e DimensionCount.

Suporte ao Tensor

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputGradientTensor Entrada 4 a 5 FLOAT32, FLOAT16
OutputGradientTensor Saída 4 a 5 FLOAT32, FLOAT16

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10 Build 20348
Servidor mínimo com suporte Windows 10 Build 20348
Cabeçalho directml.h