Condividi tramite


DML_ARGMIN_OPERATOR_DESC struttura (directml.h)

Restituisce gli indici degli elementi con valori minimi all'interno di una o più dimensioni del tensore di input.

Ogni elemento di output è il risultato dell'applicazione di una riduzione argmin su un subset del tensore di input. La funzione argmin restituisce l'indice dell'elemento con valore minimo all'interno di un set di elementi di input. Gli elementi di input coinvolti in ogni riduzione sono determinati dagli assi di input forniti. Analogamente, ogni indice di output è rispetto agli assi di input forniti. Se vengono specificati tutti gli assi di input, l'operatore applica una singola riduzione argmin e produce un singolo elemento di output.

Sintassi

struct DML_ARGMIN_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  AxisCount;
  const UINT            *Axes;
  DML_AXIS_DIRECTION    AxisDirection;
};

Members

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensore da cui leggere.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Tensor in cui scrivere i risultati. Ogni elemento di output è il risultato di una riduzione argmin su un subset di elementi da InputTensor.

  • DimensionCount deve corrispondere a InputTensor.DimensionCount (il rango del tensore di input viene mantenuto).
  • Le dimensioni devono corrispondere a InputTensor.Sizes, ad eccezione delle dimensioni incluse negli assi ridotti, che devono essere dimensioni 1.

AxisCount

Tipo: UINT

Numero di assi da ridurre. Questo campo determina le dimensioni della matrice Assi .

Axes

Tipo: _Field_size_(AxisCount) const UINT*

Assi lungo cui ridurre. I valori devono trovarsi nell'intervallo [0, InputTensor.DimensionCount - 1].

AxisDirection

DML_AXIS_DIRECTION AxisDirection;

Tipo: DML_AXIS_DIRECTION

Determina l'indice da selezionare quando più elementi di input hanno lo stesso valore.

  • DML_AXIS_DIRECTION_INCREASING restituisce l'indice del primo elemento con valore minimo (ad esempio, argmin({1,2,3,2,1}) = 0)
  • DML_AXIS_DIRECTION_DECREASING restituisce l'indice dell'ultimo elemento con valore minimo (ad esempio, argmin({1,2,3,2,1}) = 4)

Esempio

Gli esempi in questa sezione usano tutti lo stesso tensore di input bidimensionale.

InputTensor: (Sizes:{3, 3}, DataType:FLOAT32)
[[1, 2, 3],
 [3, 0, 4],
 [2, 5, 2]]

Esempio 1. Applicazione di argmin alle colonne

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})

Esempio 2. Applicazione di argmin alle righe

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})

Esempio 3. Applicazione di argmin a tutti gli assi (l'intero tensore)

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})

Commenti

Le dimensioni del tensore di output devono essere uguali alle dimensioni del tensore di input, ad eccezione degli assi ridotti, che devono essere 1.

Quando AxisDirection è DML_AXIS_DIRECTION_INCREASING, questa API equivale a DML_REDUCE_OPERATOR_DESC con DML_REDUCE_FUNCTION_ARGMIN.

Un subset di questa funzionalità viene esposto tramite l'operatore DML_REDUCE_OPERATOR_DESC ed è supportato nei livelli di funzionalità DirectML precedenti.

Disponibilità

Questo operatore è stato introdotto in DML_FEATURE_LEVEL_3_0.

Vincoli tensor

InputTensor e OutputTensor devono avere lo stesso DimensionCount.

Supporto di Tensor

DML_FEATURE_LEVEL_4_1 e versioni successive

Tensore Tipo Conteggi delle dimensioni supportate Tipi di dati supportati
InputTensor Input da 1 a 8 FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputTensor Output da 1 a 8 INT64, INT32, UINT64, UINT32

DML_FEATURE_LEVEL_3_0 e versioni successive

Tensore Tipo Conteggi delle dimensioni supportate Tipi di dati supportati
InputTensor Input da 1 a 8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputTensor Output da 1 a 8 INT64, INT32, UINT64, UINT32

Requisiti

Requisito Valore
Client minimo supportato Windows 10 Build 20348
Server minimo supportato Windows 10 Build 20348
Intestazione directml.h