log_softmax#
- scipy.special.log_softmax(x, axis=None)[Quelle]#
Berechnet den Logarithmus der Softmax-Funktion.
Im Prinzip
log_softmax(x) = log(softmax(x))
aber mit einer genaueren Implementierung.
- Parameter:
- xarray_like
Eingabearray.
- axisint oder Tupel von ints, optional
Achse, entlang derer die Werte berechnet werden sollen. Standard ist None und Softmax wird über das gesamte Array x berechnet.
- Rückgabe:
- sndarray oder Skalar
Ein Array mit der gleichen Form wie x. Die Exponentialfunktion des Ergebnisses summiert sich entlang der angegebenen Achse zu 1. Wenn x ein Skalar ist, wird ein Skalar zurückgegeben.
Hinweise
log_softmaxist genauer alsnp.log(softmax(x))bei Eingaben, diesoftmaxsättigen lassen (siehe Beispiele unten).Hinzugefügt in Version 1.5.0.
log_softmaxhat experimentelle Unterstützung für Backends, die mit dem Python Array API Standard kompatibel sind, zusätzlich zu NumPy. Bitte erwägen Sie, diese Funktionen zu testen, indem Sie die UmgebungsvariableSCIPY_ARRAY_API=1setzen und CuPy-, PyTorch-, JAX- oder Dask-Arrays als Array-Argumente bereitstellen. Die folgenden Kombinationen aus Backend und Gerät (oder anderer Fähigkeit) werden unterstützt.Bibliothek
CPU
GPU
NumPy
✅
n/a
CuPy
n/a
✅
PyTorch
✅
✅
JAX
✅
✅
Dask
✅
n/a
Siehe Unterstützung für den Array API Standard für weitere Informationen.
Beispiele
>>> import numpy as np >>> from scipy.special import log_softmax >>> from scipy.special import softmax >>> np.set_printoptions(precision=5)
>>> x = np.array([1000.0, 1.0])
>>> y = log_softmax(x) >>> y array([ 0., -999.])
>>> with np.errstate(divide='ignore'): ... y = np.log(softmax(x)) ... >>> y array([ 0., -inf])