DML_RESAMPLE_GRAD_OPERATOR_DESC-Struktur (directml.h)
Berechnet backpropagation gradients for Resample (siehe DML_RESAMPLE1_OPERATOR_DESC).
DML_RESAMPLE1_OPERATOR_DESC skaliert beliebige Dimensionen des Eingabetensors neu, indem entweder das nächste Benachbarte Sampling oder die bilineare Interpolation verwendet wird. Bei einem InputGradientTensor mit den gleichen Größen wie die Ausgabe eines entsprechenden DML_RESAMPLE1_OPERATOR_DESC erzeugt dieser Operator einen OutputGradientTensor mit den gleichen Größen wie die Eingabe des DML_RESAMPLE1_OPERATOR_DESC.
Betrachten Sie als Beispiel eine DML_RESAMPLE1_OPERATOR_DESC , die eine nächstliegende Skalierung von 1,5-fach in der Breite und 0,5-fach in der Höhe ausführt.
InputTensor OutputTensor
[[1, 2], Resample [1, 1, 2]
[3, 4]] -->
Beachten Sie, wie das 0. Element des Eingabe tensors (mit dem Wert 1) zu zwei Elementen in der Ausgabe beiträgt, das 1. Element (mit dem Wert 2) zu einem Element in der Ausgabe und das 2. und das 3. Element (mit den Werten 3 und 4) tragen zu keinem Element der Ausgabe bei.
Die entsprechende DML_RESAMPLE_GRAD_OPERATOR_DESC führt Folgendes aus.
InputGradientTensor OutputGradientTensor
[4, 5, 6] ResampleGrad [[9, 6],
--> [0, 0]]
Beachten Sie, dass die Werte im OutputGradientTensor die gewichtete Beiträge dieses Elements zum OutputTensor während des ursprünglichen DML_RESAMPLE1_OPERATOR_DESC-Operators darstellen.
Syntax
struct DML_RESAMPLE_GRAD_OPERATOR_DESC {
const DML_TENSOR_DESC *InputGradientTensor;
const DML_TENSOR_DESC *OutputGradientTensor;
DML_INTERPOLATION_MODE InterpolationMode;
UINT DimensionCount;
const FLOAT *Scales;
const FLOAT *InputPixelOffsets;
const FLOAT *OutputPixelOffsets;
};
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_RESAMPLE1_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_RESAMPLE1_OPERATOR_DESC im Vorwärtsdurchlauf.
InterpolationMode
Siehe InterpolationMode in DML_RESAMPLE1_OPERATOR_DESC.
DimensionCount
Typ: UINT
Die Anzahl der Elemente in den Arrays Scales, InputPixelOffsets und OutputPixelOffsets . Dieser Wert muss dem DimensionCount entsprechen, der in InputGradientTensor und OutputGradientTensor bereitgestellt wird.
Scales
Typ: _Field_size_(DimensionCount) const FLOAT*
Weitere Informationen finden Sie unter Skalierungen in DML_RESAMPLE1_OPERATOR_DESC.
InputPixelOffsets
Typ: _Field_size_(DimensionCount) const FLOAT*
Weitere Informationen finden Sie unter InputPixelOffsets in DML_RESAMPLE1_OPERATOR_DESC.
OutputPixelOffsets
Typ: _Field_size_(DimensionCount) const FLOAT*
Weitere Informationen finden Sie unter OutputPixelOffsets in DML_RESAMPLE1_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
DML_FEATURE_LEVEL_5_1 und höher
Tensor | Typ | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputGradientTensor | Eingabe | 1 bis 4 | FLOAT32, FLOAT16 |
OutputGradientTensor | Ausgabe | 1 bis 4 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_3_0 und höher
Tensor | Typ | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputGradientTensor | Eingabe | 4 | FLOAT32, FLOAT16 |
OutputGradientTensor | Ausgabe | 4 | FLOAT32, FLOAT16 |
Anforderungen
Unterstützte Mindestversion (Client) | Windows 10 Build 20348 |
Unterstützte Mindestversion (Server) | Windows 10 Build 20348 |
Kopfzeile | directml.h |