scipy.special.

log_softmax#

scipy.special.log_softmax(x, axis=None)[源代码][源代码]#

计算 softmax 函数的对数。

原则上:

log_softmax(x) = log(softmax(x))

但使用了一个更准确的实现。

参数:
xarray_like

输入数组。

int 或 int 的元组,可选

要计算值的轴。默认值为 None,将在整个数组 x 上计算 softmax。

返回:
sndarray 或标量

x 形状相同的数组。结果的指数将在指定轴上求和为 1。如果 x 是标量,则返回标量。

注释

log_softmax 在输入使得 softmax 饱和时比 np.log(softmax(x)) 更精确(见下文示例)。

Added in version 1.5.0.

示例

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