estructura DML_ARGMIN_OPERATOR_DESC (directml.h)
Genera los índices de los elementos con valores mínimos dentro de una o varias dimensiones del tensor de entrada.
Cada elemento de salida es el resultado de aplicar una reducción de argmin en un subconjunto del tensor de entrada. La función argmin genera el índice del elemento con valores mínimos dentro de un conjunto de elementos de entrada. Los elementos de entrada implicados en cada reducción se determinan mediante los ejes de entrada proporcionados. De forma similar, cada índice de salida es con respecto a los ejes de entrada proporcionados. Si se especifican todos los ejes de entrada, el operador aplica una única reducción de argmin y genera un único elemento de salida.
Sintaxis
struct DML_ARGMIN_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT AxisCount;
const UINT *Axes;
DML_AXIS_DIRECTION AxisDirection;
};
Miembros
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensor del que se va a leer.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensor en el que se van a escribir los resultados. Cada elemento de salida es el resultado de una reducción de argmin en un subconjunto de elementos de InputTensor.
- DimensionCount debe coincidir con InputTensor.DimensionCount (se conserva la clasificación del tensor de entrada).
- Los tamaños deben coincidir con InputTensor.Sizes, excepto las dimensiones incluidas en los ejes reducidos, que deben tener el tamaño 1.
AxisCount
Tipo: UINT
Número de ejes que se van a reducir. Este campo determina el tamaño de la matriz de ejes .
Axes
Tipo: _Field_size_(AxisCount) const UINT*
Ejes a lo largo del cual se va a reducir. Los valores deben estar en el intervalo [0, InputTensor.DimensionCount - 1]
.
AxisDirection
DML_AXIS_DIRECTION AxisDirection;
Tipo: DML_AXIS_DIRECTION
Determina qué índice se debe seleccionar cuando varios elementos de entrada tienen el mismo valor.
- DML_AXIS_DIRECTION_INCREASING devuelve el índice del primer elemento con valores mínimos (por ejemplo,
argmin({1,2,3,2,1}) = 0
). - DML_AXIS_DIRECTION_DECREASING devuelve el índice del último elemento con valores mínimos (por ejemplo,
argmin({1,2,3,2,1}) = 4
).
Ejemplos
Todos los ejemplos de esta sección usan este mismo tensor de entrada bidimensional.
InputTensor: (Sizes:{3, 3}, DataType:FLOAT32)
[[1, 2, 3],
[3, 0, 4],
[2, 5, 2]]
Ejemplo 1. Aplicación de argmin a columnas
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})
Ejemplo 2. Aplicación de argmin a filas
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})
Ejemplo 3. Aplicar argmin a todos los ejes (el tensor completo)
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})
Comentarios
Los tamaños de tensor de salida deben ser los mismos que los tamaños de tensor de entrada, excepto los ejes reducidos, que deben ser 1.
Cuando AxisDirection es DML_AXIS_DIRECTION_INCREASING, esta API equivale a DML_REDUCE_OPERATOR_DESC con DML_REDUCE_FUNCTION_ARGMIN.
Un subconjunto de esta funcionalidad se expone a través del operador DML_REDUCE_OPERATOR_DESC y se admite en niveles de características de DirectML anteriores.
Disponibilidad
Este operador se introdujo en DML_FEATURE_LEVEL_3_0
.
Restricciones tensor
InputTensor y OutputTensor deben tener el mismo DimensionCount.
Compatibilidad con Tensor
DML_FEATURE_LEVEL_4_1 y versiones posteriores
Tensor | Clase | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|
InputTensor | Entrada | De 1 a 8 | FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputTensor | Resultados | De 1 a 8 | INT64, INT32, UINT64, UINT32 |
DML_FEATURE_LEVEL_3_0 y versiones posteriores
Tensor | Clase | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|
InputTensor | Entrada | De 1 a 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputTensor | Resultados | De 1 a 8 | INT64, INT32, UINT64, UINT32 |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | compilación 20348 de Windows 10 |
Servidor mínimo compatible | compilación 20348 de Windows 10 |
Encabezado | directml.h |