DML_AVERAGE_POOLING_GRAD_OPERATOR_DESC-Struktur (directml.h)
Berechnet backpropagation gradients for average pooling (siehe DML_AVERAGE_POOLING_OPERATOR_DESC).
Stellen Sie sich einen 2x2-DML_AVERAGE_POOLING_OPERATOR_DESC ohne Abstand und einen Schritt von 1 vor, der folgendes ausführt.
InputTensor OutputTensor
[[[[1, 2, 3], AvgPool [[[[3, 4],
[4, 5, 6], --> [6, 7]]]]
[7, 8, 9]]]]
Jedes 2x2-Fenster im Eingabe tensor wird gemittelt, um ein Element der Ausgabe zu erzeugen (Nullen für Elemente außerhalb des Rands). Hier sehen Sie ein Beispiel für die Ausgabe von DML_AVERAGE_POOLING_GRAD_OPERATOR_DESC mit ähnlichen Parametern.
InputGradientTensor OutputGradientTensor
[[[[1, 2], AvgPoolGrad [[[[0.25, 0.75, 0.5],
[3, 4]]]] --> [ 1, 2.5, 1.5],
[0.75, 1.75, 1]]]]
Beachten Sie, dass die Werte im OutputGradientTensor die gewichtete Beiträge dieses Elements zum OutputTensor während des ursprünglichen DML_AVERAGE_POOLING_OPERATOR_DESC-Operators darstellen.
Syntax
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;
};
Member
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_AVERAGE_POOLING_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_AVERAGE_POOLING_OPERATOR_DESC im Vorwärtsdurchlauf.
DimensionCount
Typ: UINT
Die Anzahl der Elemente in den Arrays Strides, WindowSize, StartPadding und EndPadding . Dieser Wert muss der Anzahl räumlicher Dimensionen entsprechen. Die Anzahl der räumlichen Dimensionen beträgt 2, wenn 4D-Tensoren bereitgestellt werden, oder 3, wenn 5D-Tensoren bereitgestellt werden.
Strides
Typ: _Field_size_(DimensionCount) const UINT*
Weitere Informationen finden Sie unter Strides in DML_AVERAGE_POOLING_OPERATOR_DESC.
WindowSize
Typ: _Field_size_(DimensionCount) const UINT*
Weitere Informationen finden Sie unter WindowSize in DML_AVERAGE_POOLING_OPERATOR_DESC.
StartPadding
Typ: _Field_size_(DimensionCount) const UINT*
Weitere Informationen finden Sie unter StartPadding in DML_AVERAGE_POOLING_OPERATOR_DESC.
EndPadding
Typ: _Field_size_(DimensionCount) const UINT*
Weitere Informationen finden Sie unter EndPadding in DML_AVERAGE_POOLING_OPERATOR_DESC.
IncludePadding
Typ: BOOL
Weitere Informationen finden Sie unter IncludePadding in DML_AVERAGE_POOLING_OPERATOR_DESC.
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_3_0
eingeführt.
Tensoreinschränkungen
InputGradientTensor und OutputGradientTensor müssen über denselben DataType und DimensionCount verfügen.
Tensorunterstützung
Tensor | Variante | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputGradientTensor | Eingabe | 4 bis 5 | FLOAT32, FLOAT16 |
OutputGradientTensor | Ausgabe | 4 bis 5 | FLOAT32, FLOAT16 |
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 Build 20348 |
Unterstützte Mindestversion (Server) | Windows 10 Build 20348 |
Kopfzeile | directml.h |