DML_ARGMIN_OPERATOR_DESC-Struktur (directml.h)
Gibt die Indizes der minimalwertigen Elemente innerhalb einer oder mehrerer Dimensionen des Eingabe tensors aus.
Jedes Ausgabeelement ist das Ergebnis der Anwendung einer Argmin-Reduktion auf eine Teilmenge des Eingabe tensors. Die argmin-Funktion gibt den Index des minimalwertigen Elements innerhalb einer Reihe von Eingabeelementen aus. Die an jeder Reduktion beteiligten Eingabeelemente werden durch die bereitgestellten Eingabeachsen bestimmt. Ebenso gilt jeder Ausgabeindex in Bezug auf die bereitgestellten Eingabeachsen. Wenn alle Eingabeachsen angegeben sind, wendet der Operator eine einzelne Argmin-Reduzierung an und erzeugt ein einzelnes Ausgabeelement.
Syntax
struct DML_ARGMIN_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT AxisCount;
const UINT *Axes;
DML_AXIS_DIRECTION AxisDirection;
};
Member
InputTensor
Typ: const DML_TENSOR_DESC*
Der Tensor, aus dem gelesen werden soll.
OutputTensor
Typ: const DML_TENSOR_DESC*
Der Tensor, in den die Ergebnisse geschrieben werden sollen. Jedes Ausgabeelement ist das Ergebnis einer Argmin-Reduzierung für eine Teilmenge von Elementen aus dem InputTensor.
- DimensionCount muss mit InputTensor.DimensionCount übereinstimmen (der Rang des Eingabe tensors wird beibehalten).
- Die Größen müssen mit InputTensor.Sizes übereinstimmen, mit Ausnahme der Dimensionen, die in den reduzierten Achsen enthalten sind, die Größe 1 sein müssen.
AxisCount
Typ: UINT
Die Anzahl der zu reduzierenden Achsen. Dieses Feld bestimmt die Größe des Axes-Arrays .
Axes
Typ: _Field_size_(AxisCount) const UINT*
Die Achsen, entlang denen reduziert werden soll. Die Werte müssen im Bereich liegen [0, InputTensor.DimensionCount - 1]
.
AxisDirection
DML_AXIS_DIRECTION AxisDirection;
Typ: DML_AXIS_DIRECTION
Bestimmt, welcher Index ausgewählt werden soll, wenn mehrere Eingabeelemente denselben Wert haben.
- DML_AXIS_DIRECTION_INCREASING gibt den Index des ersten minimalwertigen Elements zurück (z. B.
argmin({1,2,3,2,1}) = 0
) - DML_AXIS_DIRECTION_DECREASING gibt den Index des letzten Minimalwertelements zurück (z. B.
argmin({1,2,3,2,1}) = 4
)
Beispiele
In den Beispielen in diesem Abschnitt wird derselbe zweidimensionale Eingabe tensor verwendet.
InputTensor: (Sizes:{3, 3}, DataType:FLOAT32)
[[1, 2, 3],
[3, 0, 4],
[2, 5, 2]]
Beispiel 1: Anwenden von Argmin auf Spalten
AxisCount: 1
Axes: {0}
AxisDirection: DML_AXIS_DIRECTION_INCREASING
OutputTensor: (Sizes:{1, 3}, DataType:UINT32)
[[0, // argmin({1, 3, 2})
1, // argmin({2, 0, 5})
2]] // argmin({3, 4, 2})
Beispiel 2: Anwenden von Argmin auf Zeilen
AxisCount: 1
Axes: {1}
AxisDirection: DML_AXIS_DIRECTION_INCREASING
OutputTensor: (Sizes:{3, 1}, DataType:UINT32)
[[0], // argmin({1, 2, 3})
[1], // argmin({3, 0, 4})
[0]] // argmin({2, 5, 2})
Beispiel 3: Anwenden von Argmin auf alle Achsen (den gesamten Tensor)
AxisCount: 2
Axes: {0, 1}
AxisDirection: DML_AXIS_DIRECTION_INCREASING
OutputTensor: (Sizes:{1, 1}, DataType:UINT32)
[[4]] // argmin({1, 2, 3, 3, 0, 4, 2, 5, 2})
Hinweise
Die Ausgabe tensorgrößen müssen mit den Eingangs tensorgrößen übereinstimmen, mit Ausnahme der reduzierten Achsen, die 1 sein müssen.
Wenn AxisDirectionDML_AXIS_DIRECTION_INCREASING ist, entspricht diese API DML_REDUCE_OPERATOR_DESC mit DML_REDUCE_FUNCTION_ARGMIN.
Eine Teilmenge dieser Funktionalität wird über den operator DML_REDUCE_OPERATOR_DESC verfügbar gemacht und auf früheren DirectML-Featureebenen unterstützt.
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_3_0
eingeführt.
Tensoreinschränkungen
InputTensor und OutputTensor müssen über dieselbe DimensionCount verfügen.
Tensorunterstützung
DML_FEATURE_LEVEL_4_1 und höher
Tensor | Variante | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 1 bis 8 | FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputTensor | Ausgabe | 1 bis 8 | INT64, INT32, UINT64, UINT32 |
DML_FEATURE_LEVEL_3_0 und höher
Tensor | Variante | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 1 bis 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputTensor | Ausgabe | 1 bis 8 | INT64, INT32, UINT64, UINT32 |
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 Build 20348 |
Unterstützte Mindestversion (Server) | Windows 10 Build 20348 |
Kopfzeile | directml.h |