本文簡要介紹 python 語言中 scipy.special.softmax
的用法。
用法:
scipy.special.softmax(x, axis=None)#
計算 softmax 函數。
softmax 函數通過計算每個元素的 index 除以所有元素的 index 之和來轉換集合的每個元素。也就是說,如果 x 是一維 numpy 數組:
softmax(x) = np.exp(x)/sum(np.exp(x))
- x: array_like
輸入數組。
- axis: int 或整數元組,可選
沿計算值的軸。默認為無,softmax 將在整個數組 x 上計算。
- s: ndarray
與 x 形狀相同的數組。結果將沿指定軸求和為 1。
參數 ::
返回 ::
注意:
向量 的softmax函數 的公式是
softmax
函數是logsumexp
的梯度。該實現使用移位來避免溢出。有關更多詳細信息,請參閱[1]。
參考:
[1]P. 布蘭查德,D.J. Higham, N.J. Higham,“準確計算 log-sum-exp 和 softmax 函數”,IMA 數值分析雜誌,第 41 卷(4),DOI:10.1093/imanum/draa038。
例子:
>>> import numpy as np >>> from scipy.special import softmax >>> np.set_printoptions(precision=5)
>>> x = np.array([[1, 0.5, 0.2, 3], ... [1, -1, 7, 3], ... [2, 12, 13, 3]]) ...
計算整個數組的 softmax 變換。
>>> m = softmax(x) >>> m array([[ 4.48309e-06, 2.71913e-06, 2.01438e-06, 3.31258e-05], [ 4.48309e-06, 6.06720e-07, 1.80861e-03, 3.31258e-05], [ 1.21863e-05, 2.68421e-01, 7.29644e-01, 3.31258e-05]])
>>> m.sum() 1.0
沿第一個軸(即列)計算 softmax 變換。
>>> m = softmax(x, axis=0)
>>> m array([[ 2.11942e-01, 1.01300e-05, 2.75394e-06, 3.33333e-01], [ 2.11942e-01, 2.26030e-06, 2.47262e-03, 3.33333e-01], [ 5.76117e-01, 9.99988e-01, 9.97525e-01, 3.33333e-01]])
>>> m.sum(axis=0) array([ 1., 1., 1., 1.])
沿第二個軸(即行)計算 softmax 變換。
>>> m = softmax(x, axis=1) >>> m array([[ 1.05877e-01, 6.42177e-02, 4.75736e-02, 7.82332e-01], [ 2.42746e-03, 3.28521e-04, 9.79307e-01, 1.79366e-02], [ 1.22094e-05, 2.68929e-01, 7.31025e-01, 3.31885e-05]])
>>> m.sum(axis=1) array([ 1., 1., 1.])
相關用法
- Python SciPy special.smirnovi用法及代碼示例
- Python SciPy special.seterr用法及代碼示例
- Python SciPy special.shichi用法及代碼示例
- Python SciPy special.smirnov用法及代碼示例
- Python SciPy special.stdtr用法及代碼示例
- Python SciPy special.sinc用法及代碼示例
- Python SciPy special.stdtridf用法及代碼示例
- Python SciPy special.sindg用法及代碼示例
- Python SciPy special.spherical_kn用法及代碼示例
- Python SciPy special.spherical_yn用法及代碼示例
- Python SciPy special.struve用法及代碼示例
- Python SciPy special.sici用法及代碼示例
- Python SciPy special.spherical_in用法及代碼示例
- Python SciPy special.spherical_jn用法及代碼示例
- Python SciPy special.stirling2用法及代碼示例
- Python SciPy special.spence用法及代碼示例
- Python SciPy special.stdtrit用法及代碼示例
- Python SciPy special.exp1用法及代碼示例
- Python SciPy special.expn用法及代碼示例
- Python SciPy special.ncfdtri用法及代碼示例
- Python SciPy special.gamma用法及代碼示例
- Python SciPy special.y1用法及代碼示例
- Python SciPy special.y0用法及代碼示例
- Python SciPy special.ellip_harm_2用法及代碼示例
- Python SciPy special.i1e用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.special.softmax。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。