Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Führt eine natürliche Log-of-softmax-Aktivierungsfunktion für jedes Element von 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 Exponentiationsfunktion, und ln(x) ist der natürliche Logarithmus.
Von Bedeutung
Diese API ist als Teil des eigenständigen Redistributable-Pakets von DirectML verfügbar (siehe Microsoft.AI.DirectML , Version 1.9 und höher). Siehe auch den 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;
};
Elemente
InputTensor
Typ: const DML_TENSOR_DESC*
Der Eingabe-Tensor, aus dem gelesen werden soll.
OutputTensor
Typ: const DML_TENSOR_DESC*
Der Ausgabe-Tensor, in den die Ergebnisse geschrieben werden sollen.
AxisCount
Typ: UINT
Die Anzahl der Achsen, die berechnet werden sollen, um die Summe zu reduzieren. Dieses Feld bestimmt die Größe des Axes-Arrays .
Axes
Typ: _Field_size_(AxisCount) const UINT*
Die Achsen, entlang der die Summe reduziert werden soll. Werte müssen sich im Bereich [0, InputTensor.DimensionCount - 1]
befinden.
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],
]
]
Bemerkungen
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.
Tensoreinschränkungen
"InputTensor " und " OutputTensor " müssen denselben Datentyp, "DimensionCount" und " Größen" aufweisen.
Tensorunterstützung
Tensor | Variante | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 1 bis 8 | FLOAT32, FLOAT16 |
AusgangTensor | Ausgabe | 1 bis 8 | FLOAT32, FLOAT16 |
Anforderungen
Kopfball | directml.h |