DML_MAX_POOLING_GRAD_OPERATOR_DESC-Struktur (directml.h)
Berechnet backpropagation gradients for max pooling (siehe DML_MAX_POOLING2_OPERATOR_DESC).
Stellen Sie sich einen 2x2-DML_MAX_POOLING2_OPERATOR_DESC ohne Auffüllung oder Erweiterung und einen Schritt von 1 vor, der folgendes ausführt.
InputTensor OutputTensor IndicesTensor
[[1, 2, 3], MaxPool [[4, 4], [[4, 4],
[2, 4, 2], --> [6, 7]] [7, 8]]
[5, 6, 7]]
Das größte Element jedes 2x2-Fensters im Eingabe tensor erzeugt ein Element der Ausgabe. Im Folgenden finden Sie ein Beispiel für die Ausgabe von DML_MAX_POOLING_GRAD_OPERATOR_DESC mit ähnlichen Parametern.
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]]
Tatsächlich verwendet dieser Operator den InputTensor , um den Index des größten Elements aus jedem Fenster zu bestimmen, und verteilt die Werte von InputGradientTensor auf der Grundlage dieser Indizes in den OutputGradientTensor . Wenn sich Indizes überschneiden, werden die Werte summiert. Alle nicht referenzierten Ausgabeelemente werden auf null gesetzt.
Im Fall einer Verknüpfung (bei der mehrere Elemente in einem Fenster den gleichen Maximalwert haben), wird das Element mit dem niedrigsten Index des logischen Elements ausgewählt.
Syntax
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;
};
Member
InputTensor
Typ: const DML_TENSOR_DESC*
Der Tensor des Eingabefeatures. Dies ist in der Regel derselbe Tensor, der wie der InputTensor bereitgestellt wurde, um im Vorwärtsdurchlauf DML_MAX_POOLING2_OPERATOR_DESC .
InputGradientTensor
Typ: const DML_TENSOR_DESC*
Der eingehende Gradienten tensor. Dies wird in der Regel aus der Ausgabe der Backpropagation einer vorangehenden Ebene abgerufen. In der Regel hat dieser Tensor die gleichen Größen wie die Ausgabe des entsprechenden DML_MAX_POOLING2_OPERATOR_DESC im Vorwärtsdurchlauf.
OutputGradientTensor
Typ: const DML_TENSOR_DESC*
Ein Ausgabe tensor, der die umgekehrten Farbverläufe enthält. In der Regel hat dieser Tensor die gleichen Größen wie die Eingabe des entsprechenden DML_MAX_POOLING2_OPERATOR_DESC im Vorwärtsdurchlauf.
DimensionCount
Typ: UINT
Die Anzahl der Elemente in den Arrays Strides, WindowSize, StartPadding, EndPadding und Dilations . Dieser Wert muss der Anzahl räumlicher Dimensionen entsprechen (DimensionCount von InputTensor – 2). Da dieser Operator nur 4D-Tensoren unterstützt, ist der einzige gültige Wert für diesen Parameter 2.
Strides
Typ: _Field_size_(DimensionCount) const UINT*
Weitere Informationen finden Sie unter Strides in DML_MAX_POOLING2_OPERATOR_DESC.
WindowSize
Typ: _Field_size_(DimensionCount) const UINT*
Weitere Informationen finden Sie unter WindowSize in DML_MAX_POOLING2_OPERATOR_DESC.
StartPadding
Typ: _Field_size_(DimensionCount) const UINT*
Siehe StartPadding in DML_MAX_POOLING2_OPERATOR_DESC.
EndPadding
Typ: _Field_size_(DimensionCount) const UINT*
Weitere Informationen finden Sie unter EndPadding in DML_MAX_POOLING2_OPERATOR_DESC.
Dilations
Typ: _Field_size_(DimensionCount) const UINT*
Weitere Informationen finden Sie unter Dilations in DML_MAX_POOLING2_OPERATOR_DESC.
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_3_0
eingeführt.
Tensoreinschränkungen
- InputGradientTensor, InputTensor und OutputGradientTensor müssen denselben DataType und DimensionCount aufweisen.
- InputTensor und OutputGradientTensor müssen die gleichen Größen aufweisen.
Tensorunterstützung
DML_FEATURE_LEVEL_4_0 und höher
Tensor | Typ | Dimensionen | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|---|
InputTensor | Eingabe | { BatchCount, ChannelCount, [InputDepth], InputHeight, InputWidth } | 4 bis 5 | FLOAT32, FLOAT16 |
InputGradientTensor | Eingabe | { BatchCount, ChannelCount, [OutputDepth], OutputHeight, OutputWidth } | 4 bis 5 | FLOAT32, FLOAT16 |
OutputGradientTensor | Ausgabe | { BatchCount, ChannelCount, [InputDepth], InputHeight, InputWidth } | 4 bis 5 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_3_0 und höher
Tensor | Typ | Dimensionen | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|---|
InputTensor | Eingabe | { BatchCount, ChannelCount, InputHeight, InputWidth } | 4 | FLOAT32, FLOAT16 |
InputGradientTensor | Eingabe | { BatchCount, ChannelCount, OutputHeight, OutputWidth } | 4 | FLOAT32, FLOAT16 |
OutputGradientTensor | Ausgabe | { BatchCount, ChannelCount, InputHeight, InputWidth } | 4 | FLOAT32, FLOAT16 |
Anforderungen
Unterstützte Mindestversion (Client) | Windows 10 Build 20348 |
Unterstützte Mindestversion (Server) | Windows 10 Build 20348 |
Kopfzeile | directml.h |