Compartir a través de


estructura DML_MAX_POOLING_GRAD_OPERATOR_DESC (directml.h)

Calcula los degradados de la propiedad inversa para la agrupación máxima (consulte DML_MAX_POOLING2_OPERATOR_DESC).

Considere una DML_MAX_POOLING2_OPERATOR_DESC de 2x2 sin relleno ni dilaciones y un intervalo de 1, que realiza lo siguiente.

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

El elemento más grande de cada ventana 2x2 del tensor de entrada genera un elemento de la salida. A continuación se muestra un ejemplo de la salida de DML_MAX_POOLING_GRAD_OPERATOR_DESC, dados parámetros similares.

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

En efecto, este operador usa InputTensor para determinar el índice del elemento más grande de cada ventana y distribuye los valores de InputGradientTensor en outputGradientTensor en función de estos índices. Donde los índices se superponen, se suman los valores. Los elementos de salida sin referencia se eliminan a cero.

En el caso de un empate (donde más de un elemento de una ventana tiene el mismo valor máximo), se elige el elemento con el índice de elemento lógico más bajo.

Sintaxis

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;
};

Miembros

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensor de la característica de entrada. Normalmente, este es el mismo tensor que se proporcionó como InputTensor para DML_MAX_POOLING2_OPERATOR_DESC en el pase hacia delante.

InputGradientTensor

Tipo: const DML_TENSOR_DESC*

Tensor de degradado entrante. Esto se obtiene normalmente a partir de la salida de la propiedad backpropagation de una capa anterior. Normalmente, este tensor tendría los mismos tamaños que la salida del DML_MAX_POOLING2_OPERATOR_DESC correspondiente en el pase hacia delante.

OutputGradientTensor

Tipo: const DML_TENSOR_DESC*

Tensor de salida que contiene los degradados retropropagados. Normalmente, este tensor tendría los mismos tamaños que la entrada del DML_MAX_POOLING2_OPERATOR_DESC correspondiente en el pase hacia delante.

DimensionCount

Tipo: UINT

El número de elementos de las matrices Strides, WindowSize, StartPadding, EndPadding y Dilations . Este valor debe ser igual al recuento de dimensiones espaciales (DimensionCount - 2 de InputTensor). Como este operador solo admite tensores 4D, el único valor válido para este parámetro es 2.

Strides

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte Strides in DML_MAX_POOLING2_OPERATOR_DESC (Pasos en DML_MAX_POOLING2_OPERATOR_DESC).

WindowSize

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte WindowSize en DML_MAX_POOLING2_OPERATOR_DESC.

StartPadding

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte StartPadding en DML_MAX_POOLING2_OPERATOR_DESC.

EndPadding

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte EndPadding en DML_MAX_POOLING2_OPERATOR_DESC.

Dilations

Tipo: _Field_size_(DimensionCount) const UINT*

Consulte Dilaciones en DML_MAX_POOLING2_OPERATOR_DESC.

Disponibilidad

Este operador se introdujo en DML_FEATURE_LEVEL_3_0.

Restricciones tensor

  • InputGradientTensor, InputTensor y OutputGradientTensor deben tener el mismo DataType y DimensionCount.
  • InputTensor y OutputGradientTensor deben tener los mismos tamaños.

Compatibilidad con Tensor

DML_FEATURE_LEVEL_4_0 y versiones posteriores

Tensor Kind Dimensions Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada { BatchCount, ChannelCount, [InputDepth], InputHeight, InputWidth } De 4 a 5 FLOAT32, FLOAT16
InputGradientTensor Entrada { BatchCount, ChannelCount, [OutputDepth], OutputHeight, OutputWidth } De 4 a 5 FLOAT32, FLOAT16
OutputGradientTensor Resultados { BatchCount, ChannelCount, [InputDepth], InputHeight, InputWidth } De 4 a 5 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_3_0 y versiones posteriores

Tensor Kind Dimensions Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada { BatchCount, ChannelCount, InputHeight, InputWidth } 4 FLOAT32, FLOAT16
InputGradientTensor Entrada { BatchCount, ChannelCount, OutputHeight, OutputWidth } 4 FLOAT32, FLOAT16
OutputGradientTensor Resultados { BatchCount, ChannelCount, InputHeight, InputWidth } 4 FLOAT32, FLOAT16

Requisitos

   
Cliente mínimo compatible Compilación 20348 de Windows 10
Servidor mínimo compatible Compilación 20348 de Windows 10
Encabezado directml.h