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 |