Share via


DML_SLICE_GRAD_OPERATOR_DESC-Struktur (directml.h)

Berechnet Backpropagationsverläufe für Slice (siehe DML_SLICE1_OPERATOR_DESC).

Denken Sie daran, dass DML_SLICE1_OPERATOR_DESC einen Unterbereich eines Eingabe tensors extrahiert. Bei einem InputGradientTensor mit den gleichen Größen wie die Ausgabe eines entsprechenden DML_SLICE1_OPERATOR_DESC erzeugt dieser Operator einen OutputGradientTensor mit den gleichen Größen wie die Eingabe von DML_SLICE1_OPERATOR_DESC. Die segmentierten Elemente werden an die Ausgabe weitergegeben, und alle anderen Elemente sind auf 0 festgelegt.

Betrachten Sie beispielsweise eine DML_SLICE1_OPERATOR_DESC , die die folgenden Elemente aus einem Tensor extrahiert:

InputTensor            OutputTensor
[[a, b, c, d],
 [e, f, g, h],   Slice   [[a, c],
 [i, j, k, l],    -->     [i, k]]
 [m, n, o, p]]

Wenn die gleichen InputWindowOffsets/Sizes/Strides wie im obigen Beispiel bereitgestellt werden, führt dieser Operator dann die folgende Transformation aus.

InputGradientTensor       OutputGradientTensor
                             [[a, 0, c, 0],
      [[a, c],   SliceGrad    [0, 0, 0, 0],
       [i, k]]      -->       [i, 0, k, 0],
                              [0, 0, 0, 0]]

Syntax

struct DML_SLICE_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputGradientTensor;
  const DML_TENSOR_DESC *OutputGradientTensor;
  UINT                  DimensionCount;
  const UINT            *InputWindowOffsets;
  const UINT            *InputWindowSizes;
  const INT             *InputWindowStrides;
};

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_SLICE1_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_SLICE1_OPERATOR_DESC im Vorwärtsdurchlauf.

DimensionCount

Typ: UINT

Die Anzahl der Elemente in den Arrays InputWindowOffsets, InputWindowSizes und InputWindowStrides . Dieser Wert muss dem DimensionCount entsprechen, der in InputGradientTensor und OutputGradientTensor bereitgestellt wird.

InputWindowOffsets

Typ: _Field_size_(DimensionCount) const UINT*

Weitere Informationen finden Sie unter InputWindowOffsets in DML_SLICE1_OPERATOR_DESC.

InputWindowSizes

Typ: _Field_size_(DimensionCount) const UINT*

Weitere Informationen finden Sie unter InputWindowSizes in DML_SLICE1_OPERATOR_DESC.

InputWindowStrides

Typ: _Field_size_(DimensionCount) const UINT*

Weitere Informationen finden Sie unter InputWindowStrides in DML_SLICE1_OPERATOR_DESC.

Beachten Sie, dass dieser Operator im Gegensatz zu DML_SLICE1_OPERATOR_DESC Schritte ungleich 0 erfordert. Das liegt daran, dass bei einem Nullschritt mehrdeutig ist, welches Eingabeelement jedem Ausgabeelement zugeordnet werden soll, und daher kann keine Backpropagation ausgeführt werden. Wie DML_SLICE1_OPERATOR_DESC kippen negative Strides die Richtung des Eingabefensters entlang dieser Achse.

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

DML_FEATURE_LEVEL_4_1 und höher

Tensor Variante Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputGradientTensor Eingabe 1 bis 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputGradientTensor Ausgabe 1 bis 8 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_3_1 und höher

Tensor Variante Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputGradientTensor Eingabe 1 bis 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputGradientTensor Ausgabe 1 bis 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_3_0 und höher

Tensor Variante Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputGradientTensor Eingabe 4 bis 5 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputGradientTensor Ausgabe 4 bis 5 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10 Build 20348
Unterstützte Mindestversion (Server) Windows 10 Build 20348
Kopfzeile directml.h