Share via


DML_RESAMPLE_OPERATOR_DESC-Struktur (directml.h)

Setzt Elemente aus der Quelle in den Ziel tensor neu, wobei die Skalierungsfaktoren verwendet werden, um die Größe des Ziel-Tensors zu berechnen. Sie können einen linearen oder nächsten Interpolationsmodus verwenden. Der Operator unterstützt die Interpolation über mehrere Dimensionen hinweg, nicht nur 2D. So können Sie die gleiche räumliche Größe beibehalten, aber kanalübergreifend oder batchübergreifend interpolieren.

Syntax

struct DML_RESAMPLE_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputTensor;
  const DML_TENSOR_DESC  *OutputTensor;
  DML_INTERPOLATION_MODE InterpolationMode;
  UINT                   ScaleCount;
  const FLOAT            *Scales;
};

Member

InputTensor

Typ: const DML_TENSOR_DESC*

Der Tensor, der die Eingabedaten enthält.

OutputTensor

Typ: const DML_TENSOR_DESC*

Der Tensor, in den die Ausgabedaten geschrieben werden sollen.

InterpolationMode

Typ: DML_INTERPOLATION_MODE

Dieses Feld bestimmt die Art der Interpolation, die zum Auswählen von Ausgabepixeln verwendet wird.

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Verwendet den Nearest Neighbor-Algorithmus , der das Eingabeelement auswäht, das dem entsprechenden Pixelmittelpunkt für jedes Ausgabeelement am nächsten liegt.

  • DML_INTERPOLATION_MODE_LINEAR. Verwendet den linearen Interpolationsalgorithmus , der das Ausgabeelement berechnet, indem der gewichtete Durchschnitt der 2 nächsten benachbarten Eingabeelemente pro Dimension berechnet wird. Das Resampling wird bis zu vier Dimensionen (quadrilinear) unterstützt, wobei der gewichtete Durchschnitt aus insgesamt 16 Eingabeelementen für jedes Ausgabeelement berechnet wird.

ScaleCount

Typ: UINT

Die Anzahl der Werte im Array Scales zeigt auf. Dieser Wert muss mit der Dimensionsanzahl von InputTensor und OutputTensor übereinstimmen.

Scales

Typ: _Field_size_(ScaleCount) const FLOAT*

Die Skalierungen, die beim Erneutsampling der Eingabe angewendet werden sollen, wobei > 1 das Bild hochskaliert und 1 das Bild für diese Dimension herunterskaliert < wird. Beachten Sie, dass die Skalierungen nicht genau OutputSize / InputSizesein müssen. Wenn die Eingabe nach der Skalierung größer als die ausgabegebundene ist, wird sie auf die Ausgabegröße zugeschnitten. Wenn die Eingabe nach der Skalierung dagegen kleiner als die ausgabegebundene ist, werden die Ausgaberänder eingespannt.

Hinweise

Eine neuere Version dieses Operators , DML_RESAMPLE1_OPERATOR_DESC, wurde in DML_FEATURE_LEVEL_2_1eingeführt.

Verfügbarkeit

Dieser Operator wurde in DML_FEATURE_LEVEL_2_0eingeführt.

Tensoreinschränkungen

InputTensor und OutputTensor müssen über denselben DataType und DimensionCount verfügen.

Tensorunterstützung

DML_FEATURE_LEVEL_6_2 und höher

Tensor Variante Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputTensor Eingabe 1 bis 4 FLOAT32, FLOAT16, INT8, UINT8
OutputTensor Ausgabe 1 bis 4 FLOAT32, FLOAT16, INT8, UINT8

DML_FEATURE_LEVEL_5_1 und höher

Tensor Variante Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputTensor Eingabe 1 bis 4 FLOAT32, FLOAT16
OutputTensor Ausgabe 1 bis 4 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_2_0 und höher

Tensor Variante Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputTensor Eingabe 4 FLOAT32, FLOAT16
OutputTensor Ausgabe 4 FLOAT32, FLOAT16

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 10, Version 2004 (10.0; Build 19041)
Unterstützte Mindestversion (Server) Windows Server, Version 2004 (10.0; Build 19041)
Kopfzeile directml.h