estrutura DML_ARGMIN_OPERATOR_DESC (directml.h)
Gera os índices dos elementos com valor mínimo em uma ou mais dimensões do tensor de entrada.
Cada elemento de saída é o resultado da aplicação de uma redução de argmin em um subconjunto do tensor de entrada. A função argmin gera o índice do elemento de valor mínimo dentro de um conjunto de elementos de entrada. Os elementos de entrada envolvidos em cada redução são determinados pelos eixos de entrada fornecidos. Da mesma forma, cada índice de saída é relativo aos eixos de entrada fornecidos. Se todos os eixos de entrada forem especificados, o operador aplicará uma única redução de administrador e produzirá um único elemento de saída.
Sintaxe
struct DML_ARGMIN_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT AxisCount;
const UINT *Axes;
DML_AXIS_DIRECTION AxisDirection;
};
Membros
InputTensor
Tipo: const DML_TENSOR_DESC*
O tensor do qual ler.
OutputTensor
Tipo: const DML_TENSOR_DESC*
O tensor no qual gravar os resultados. Cada elemento de saída é o resultado de uma redução de argmin em um subconjunto de elementos do InputTensor.
- DimensionCount deve corresponder a InputTensor.DimensionCount (a classificação do tensor de entrada é preservada).
- Os tamanhos devem corresponder a InputTensor.Sizes, exceto para dimensões incluídas nos Eixos reduzidos, que devem ser tamanho 1.
AxisCount
Tipo: UINT
O número de eixos a serem reduzidos. Esse campo determina o tamanho da matriz Axes .
Axes
Tipo: _Field_size_(AxisCount) const UINT*
Os eixos ao longo dos quais reduzir. Os valores devem estar no intervalo [0, InputTensor.DimensionCount - 1]
.
AxisDirection
DML_AXIS_DIRECTION AxisDirection;
Tipo: DML_AXIS_DIRECTION
Determina qual índice selecionar quando vários elementos de entrada têm o mesmo valor.
- DML_AXIS_DIRECTION_INCREASING retorna o índice do primeiro elemento de valor mínimo (por exemplo,
argmin({1,2,3,2,1}) = 0
) - DML_AXIS_DIRECTION_DECREASING retorna o índice do último elemento de valor mínimo (por exemplo,
argmin({1,2,3,2,1}) = 4
)
Exemplos
Os exemplos nesta seção usam esse mesmo tensor de entrada bidimensional.
InputTensor: (Sizes:{3, 3}, DataType:FLOAT32)
[[1, 2, 3],
[3, 0, 4],
[2, 5, 2]]
Exemplo 1. Aplicando argmin a colunas
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})
Exemplo 2. Aplicando argmin a linhas
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})
Exemplo 3. Aplicando argmin a todos os eixos (o tensor inteiro)
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})
Comentários
Os tamanhos do tensor de saída devem ser iguais aos tamanhos do tensor de entrada, exceto para os eixos reduzidos, que devem ser 1.
Quando AxisDirection é DML_AXIS_DIRECTION_INCREASING, essa API é equivalente a DML_REDUCE_OPERATOR_DESC com DML_REDUCE_FUNCTION_ARGMIN.
Um subconjunto dessa funcionalidade é exposto por meio do operador DML_REDUCE_OPERATOR_DESC e tem suporte em níveis de recurso DirectML anteriores.
Disponibilidade
Esse operador foi introduzido em DML_FEATURE_LEVEL_3_0
.
Restrições do Tensor
InputTensor e OutputTensor devem ter a mesma DimensionCount.
Suporte ao Tensor
DML_FEATURE_LEVEL_4_1 e superior
Tensor | Tipo | Contagens de dimensões com suporte | Tipos de dados com suporte |
---|---|---|---|
InputTensor | Entrada | 1 a 8 | FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputTensor | Saída | 1 a 8 | INT64, INT32, UINT64, UINT32 |
DML_FEATURE_LEVEL_3_0 e superior
Tensor | Tipo | Contagens de dimensões com suporte | Tipos de dados com suporte |
---|---|---|---|
InputTensor | Entrada | 1 a 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputTensor | Saída | 1 a 8 | INT64, INT32, UINT64, UINT32 |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10 Build 20348 |
Servidor mínimo com suporte | Windows 10 Build 20348 |
Cabeçalho | directml.h |