Estrutura DML_ACTIVATION_LOG_SOFTMAX1_OPERATOR_DESC (directml.h)
Executa uma função de ativação log-of-softmax natural em cada elemento do InputTensor, colocando o resultado no elemento do OutputTensor correspondente.
For 1-D InputTensor:
// Let x[i] to be the current element in the InputTensor, and j be the total number of elements in the InputTensor
f(x[i]) = ln(exp(x[i]) / sum(exp(x[0]), ..., exp(x[j-1])))
Onde exp(x) é a função de exponenciação natural, e ln(x) é o logaritmo natural.
Importante
Essa API está disponível como parte do pacote redistribuível autônomo DirectML (consulte Microsoft.AI.DirectML versão 1.9 e posterior. Confira também o histórico de versões do DirectML.
Sintaxe
struct DML_ACTIVATION_LOG_SOFTMAX1_OPERATOR_DESC
{
const DML_TENSOR_DESC* InputTensor;
const DML_TENSOR_DESC* OutputTensor;
UINT AxisCount;
_Field_size_(AxisCount) const UINT* Axes;
};
Membros
InputTensor
Tipo: const DML_TENSOR_DESC*
A entrada do tensor da qual fazer a leitura.
OutputTensor
Tipo: const DML_TENSOR_DESC*
O tensor de saída no qual gravar o resultado.
AxisCount
Tipo: UINT
O número de eixos para calcular a soma da redução. Esse campo determina o tamanho da matriz Eixos.
Axes
Tipo: _Field_size_(AxisCount) const UINT*
Os eixos nos quais reduzir a soma. Os valores devem estar no intervalo [0, InputTensor.DimensionCount - 1]
.
Exemplos
Todos os exemplos a seguir usam esse mesmo tensor de entrada tridimensional:
InputTensor: (Sizes:{2, 2, 2}, DataType:FLOAT32)
[
[
[ 12, 0],
[-101, 11],
],
[
[ 3, 234],
[ 0, -101],
]
]
Exemplo 1
AxisCount: 1
Axes: {1}
OutputTensor: (Sizes:{2, 2, 2}, DataType:FLOAT32)
[
[ // max element in {12, -101} is 12 and in {0, 11} is 11
[1, 0],
[0, 1],
],
[ // max element in {3, 0} is 3 and in {234, -101} is 234
[1, 1],
[0, 0],
]
]
Exemplo 2
AxisCount: 1
Axes: {0}
OutputTensor: (Sizes:{2, 2, 2}, DataType:FLOAT32)
[
[ // max element in {12, 3} is 12, in {0, 234} is 234, in {-101, 0} is 0 and in {11, -101} is 11
[1, 0],
[0, 1],
],
[
[0, 1],
[1, 0],
]
]
Exemplo 3
AxisCount: 2
Axes: {0, 2}
OutputTensor: (Sizes:{2, 2, 2}, DataType:FLOAT32)
[
[ // max element in {12, 0, 3, 234} is 234 and in {-101, 11, 0, -101} is 11
[0, 0],
[0, 1],
],
[
[0, 1],
[0, 0],
]
]
Comentários
Esse operador é equivalente a DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC no qual AxisCount == 1 e Eixos == {DimensionCount - 1}
.
Disponibilidade
Esse operador foi introduzido em DML_FEATURE_LEVEL_5_1.
Restrições de tensor
InputTensor e OutputTensor devem ter os mesmos DataType, DimensionCount e Sizes.
Suporte a tensores
Tensor | Tipo | Contagens de dimensões compatíveis | Tipos de dados com suporte |
---|---|---|---|
InputTensor | Entrada | 1 a 8 | FLOAT32, FLOAT16 |
OutputTensor | Saída | 1 a 8 | FLOAT32, FLOAT16 |
Requisitos
Cabeçalho | directml.h |