Compartir a través de


Estructura DML_ACTIVATION_LOG_SOFTMAX1_OPERATOR_DESC (directml.h)

Realiza una función natural de activación log-of-softmax en cada elemento de InputTensor y coloca el resultado en el elemento correspondiente de OutputTensor.

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])))

Donde exp(x) es la función de exponenciación natural y ln(x) es el logaritmo natural.

Importante

Esta API está disponible como parte del paquete redistribuible independiente DirectML (consulte la versión 1.9 y versiones posteriores de Microsoft.AI.DirectML). Consulte también el historial de versiones de DirectML.

Sintaxis

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;
};

Miembros

InputTensor

Tipo: const DML_TENSOR_DESC*

El tensor de entrada de donde leer.

OutputTensor

Tipo: const DML_TENSOR_DESC*

El tensor de salida en el que escribir el resultado.

AxisCount

Tipo: UINT

El número de ejes para calcular la suma de reducción. Este campo determina el tamaño de la matriz Axes.

Axes

Tipo: _Field_size_(AxisCount) const UINT*

Los ejes por los que se va a reducir la suma. Los valores deben estar en el intervalo de [0, InputTensor.DimensionCount - 1].

Ejemplos

Todos los ejemplos siguientes usan este mismo tensor de entrada tridimensional:

InputTensor: (Sizes:{2, 2, 2}, DataType:FLOAT32)
[
    [
        [  12, 0],
        [-101, 11],
    ],
    [
        [  3,  234],
        [  0, -101],
    ]
]

Ejemplo 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],
    ]
]

Ejemplo 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],
    ]
]

Ejemplo 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],
    ]
]

Comentarios

Este operador es equivalente a DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC cuando AxisCount == 1 y Axes == {DimensionCount - 1}.

Disponibilidad

Este operador se introdujo en DML_FEATURE_LEVEL_5_1.

Restricciones de tensor

InputTensor y OutputTensor deben tener los mismos DataType, DimensionCount y Sizes.

Compatibilidad del tensor

Tensor Clase Recuentos de dimensiones admitidos Tipos de datos admitidos
InputTensor Entrada 1 a 8 FLOAT32, FLOAT16
OutputTensor Salida 1 a 8 FLOAT32, FLOAT16

Requisitos

   
Encabezado directml.h

Consulte también