Share via


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_0eingefü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