Partager via


Structure DML_ACTIVATION_LOG_SOFTMAX1_OPERATOR_DESC (directml.h)

Exécute une fonction d’activation log-of-softmax naturelle sur chaque élément de InputTensor, en plaçant le résultat dans l’élément OutputTensor correspondant.

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

Là où exp(x) est la fonction d’élévation à une puissance naturelle, et ln(x) est le logarithme naturel.

Important

Cette API est disponible dans le cadre du package redistribuable autonome DirectML (voir Microsoft.AI.DirectML version 1.9 et ultérieures). Consultez également l’historique des versions DirectML.

Syntaxe

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

Membres

InputTensor

Type : const DML_TENSOR_DESC*

Tenseur d’entrée à partir duquel effectuer la lecture.

OutputTensor

Type : const DML_TENSOR_DESC*

Tenseur de sortie dans lequel le résultat doit être écrit.

AxisCount

Type : UINT

Nombre d’axes pour calculer la fonction reduce sum. Ce champ détermine la taille du tableau Axes.

Axes

Type : _Field_size_(AxisCount) const UINT*

Axes le long desquels réduire la somme. Les valeurs doivent être comprise dans la plage [0, InputTensor.DimensionCount - 1].

Exemples

Les exemples suivants utilisent tous ce même tenseur d’entrée en trois dimensions :

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

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

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

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

Notes

Cet opérateur équivaut à DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC lorsque AxisCount == 1 et Axes == {DimensionCount - 1}.

Disponibilité

Cet opérateur a été introduit dans DML_FEATURE_LEVEL_5_1.

Contraintes de tenseur

InputTensor et OutputTensor doivent avoir les mêmes DataType, DimensionCount et Sizes.

Prise en charge des tenseurs

Tenseur Genre Nombre de dimensions pris en charge Types de données pris en charge
InputTensor Input 1 à 8 FLOAT32, FLOAT16
OutputTensor Sortie 1 à 8 FLOAT32, FLOAT16

Spécifications

   
En-tête directml.h

Voir aussi