Compartir a través de


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