Share via


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

Typ: DML_INTERPOLATION_MODE

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