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_0
eingefü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 |