DML_ACTIVATION_LOG_SOFTMAX1_OPERATOR_DESC-Struktur (directml.h)
Führt eine natürliche Protokoll der Softmax-Aktivierungs-Funktion für jedes Element in InputTensor aus, wobei das Ergebnis in das entsprechende Element von OutputTensor eingefügt wird.
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])))
Dabei ist exp(x) die natürliche Potenzierungsfunktion, und ln(x) ist der natürliche Logarithmus.
Wichtig
Diese API ist als Teil des eigenständigen weiterverteilbare Pakets DirectML verfügbar (siehe Microsoft.AI.DirectML , Version 1.9 und höher). Siehe auch DirectML-Versionsverlauf.
Syntax
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;
};
Member
InputTensor
Typ: const DML_TENSOR_DESC*
Der Eingabe-Tensor, aus dem gelesen wird.
OutputTensor
Typ: const DML_TENSOR_DESC*
Der Ausgabe-Tensor, in die das Ergebnis geschrieben werden soll.
AxisCount
Typ: UINT
Die Anzahl der Achsen zur Berechnung der reduzierten Summe. Dieses Feld bestimmt die Größe der Matrix Achsen.
Axes
Typ: _Field_size_(AxisCount) const UINT*
Die Achsen, entlang der die Summe reduziert werden soll. Werte müssen im Bereich liegen [0, InputTensor.DimensionCount - 1]
.
Beispiele
In den folgenden Beispielen wird derselbe dreidimensionale Eingabe-Tensor verwendet:
InputTensor: (Sizes:{2, 2, 2}, DataType:FLOAT32)
[
[
[ 12, 0],
[-101, 11],
],
[
[ 3, 234],
[ 0, -101],
]
]
Beispiel 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],
]
]
Beispiel 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],
]
]
Beispiel 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],
]
]
Hinweise
Dieser Operator entspricht DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC, wenn AxisCount == 1 und Achsen == {DimensionCount - 1}
.
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_5_1 eingeführt.
Tensor-Einschränkungen
InputTensor und OutputTensor müssen denselben DataType, DimensionCount, und Sizes aufweisen.
Tensor-Unterstützung
Tensor | Variante | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 1 bis 8 | FLOAT32, FLOAT16 |
OutputTensor | Output | 1 bis 8 | FLOAT32, FLOAT16 |
Anforderungen
Übergeordnet | directml.h |