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 |