Compartilhar via


estrutura DML_MAX_POOLING_GRAD_OPERATOR_DESC (directml.h)

Calcula gradientes de backpropagation para pooling máximo (consulte DML_MAX_POOLING2_OPERATOR_DESC).

Considere um DML_MAX_POOLING2_OPERATOR_DESC 2x2 sem preenchimento nem vibrações e um passo de 1, que executa o seguinte.

InputTensor             OutputTensor    IndicesTensor
[[1, 2, 3],   MaxPool    [[4, 4],        [[4, 4],
 [2, 4, 2],     -->       [6, 7]]         [7, 8]]
 [5, 6, 7]]

O maior elemento de cada janela 2x2 no tensor de entrada produz um elemento da saída. Abaixo está um exemplo da saída de DML_MAX_POOLING_GRAD_OPERATOR_DESC, considerando parâmetros semelhantes.

InputTensor   InputGradientTensor            OutputGradientTensor
[[1, 2, 3],       [[1, 2],     MaxPoolGrad   [[0, 0, 0],
 [2, 4, 2],        [4, 5]]         -->        [0, 3, 0],
 [5, 6, 7]]                                   [0, 4, 5]]

Na verdade, esse operador usa o InputTensor para determinar o índice do maior elemento de cada janela e distribui os valores de InputGradientTensor no OutputGradientTensor com base nesses índices. Quando os índices se sobrepõem, os valores são somados. Todos os elementos de saída não referenciados são zerados.

No caso de uma vinculação (em que mais de um elemento em uma janela tem o mesmo valor máximo), o elemento com o menor índice de elemento lógico é escolhido.

Sintaxe

struct DML_MAX_POOLING_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *InputGradientTensor;
  const DML_TENSOR_DESC *OutputGradientTensor;
  UINT                  DimensionCount;
  const UINT            *Strides;
  const UINT            *WindowSize;
  const UINT            *StartPadding;
  const UINT            *EndPadding;
  const UINT            *Dilations;
};

Membros

InputTensor

Tipo: const DML_TENSOR_DESC*

O tensor do recurso de entrada. Normalmente, esse é o mesmo tensor que foi fornecido como InputTensor para DML_MAX_POOLING2_OPERATOR_DESC no passe para frente.

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_MAX_POOLING2_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_MAX_POOLING2_OPERATOR_DESC correspondente no passe para frente.

DimensionCount

Tipo: UINT

O número de elementos nas matrizes Strides, WindowSize, StartPadding, EndPadding e Dilations . Esse valor deve ser igual à contagem de dimensões espaciais (DimensionCount de InputTensor - 2). Como esse operador dá suporte apenas a tensores 4D, o único valor válido para esse parâmetro é 2.

Strides

Tipo: _Field_size_(DimensionCount) const UINT*

Veja Strides in DML_MAX_POOLING2_OPERATOR_DESC.

WindowSize

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte WindowSize no DML_MAX_POOLING2_OPERATOR_DESC.

StartPadding

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte StartPadding em DML_MAX_POOLING2_OPERATOR_DESC.

EndPadding

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte EndPadding em DML_MAX_POOLING2_OPERATOR_DESC.

Dilations

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte Dilations em DML_MAX_POOLING2_OPERATOR_DESC.

Disponibilidade

Esse operador foi introduzido no DML_FEATURE_LEVEL_3_0.

Restrições do Tensor

  • InputGradientTensor, InputTensor e OutputGradientTensor devem ter os mesmos DataType e DimensionCount.
  • InputTensor e OutputGradientTensor devem ter os mesmos Tamanhos.

Suporte ao Tensor

DML_FEATURE_LEVEL_4_0 e superior

Tensor Tipo Dimensões Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada { BatchCount, ChannelCount, [InputDepth], InputHeight, InputWidth } 4 a 5 FLOAT32, FLOAT16
InputGradientTensor Entrada { BatchCount, ChannelCount, [OutputDepth], OutputHeight, OutputWidth } 4 a 5 FLOAT32, FLOAT16
OutputGradientTensor Saída { BatchCount, ChannelCount, [InputDepth], InputHeight, InputWidth } 4 a 5 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_3_0 e superior

Tensor Tipo Dimensões Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada { BatchCount, ChannelCount, InputHeight, InputWidth } 4 FLOAT32, FLOAT16
InputGradientTensor Entrada { BatchCount, ChannelCount, OutputHeight, OutputWidth } 4 FLOAT32, FLOAT16
OutputGradientTensor Saída { BatchCount, ChannelCount, InputHeight, InputWidth } 4 FLOAT32, FLOAT16

Requisitos

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