Share via


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