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
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 / InputSize
sein 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_1
eingeführt.
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_2_0
eingefü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 |