python實現softmax函式 向量與矩陣形式

2021-09-29 10:27:31 字數 1089 閱讀 7320

import numpy as np

defsoftmax

(x):

""" 對輸入x的每一行計算softmax。

該函式對於輸入是向量(將向量視為單獨的行)或者矩陣(m x n)均適用。

**利用softmax函式的性質: softmax(x) = softmax(x + c)

引數:x -- 乙個n維向量,或者m x n維numpy矩陣.

返回值:

x -- 在函式內部處理後的x

"""orig_shape = x.shape

# 根據輸入型別是矩陣還是向量分別計算softmax

iflen

(x.shape)

>1:

# 矩陣

tmp = np.

max(x,axis=1)

# 得到每行的最大值,用於縮放每行的元素,避免溢位。 shape為(x.shape[0],)

x -= tmp.reshape(

(x.shape[0]

,1))

# 利用性質縮放元素

x = np.exp(x)

# 計算所有值的指數

tmp = np.

sum(x, axis =1)

# 每行求和

x /= tmp.reshape(

(x.shape[0]

,1))

# 求softmax

else

:# 向量

tmp = np.

max(x)

# 得到最大值

x -= tmp # 利用最大值縮放資料

x = np.exp(x)

# 對所有元素求指數

tmp = np.

sum(x)

# 求元素和

x /= tmp # 求somftmax

return x

x = np.array([[

1,2,

3],[

4,7,

6]])

print

(softmax(x)

)

softmax分類器 python實現

演算法這裡為了防止大家看不懂我的程式,我在這裡做一些定義 jj x i 1 p y i j x i j 1 p y i j x i e tjx i kl 1e tlx i 2 e tlx i 3 資料集 特徵將整個圖作為特徵 已上傳github 這次的 是python3的。encoding utf8...

python實現 softmax啟用函式

softmax函式 以上版本有問題 a np.array 1010,1000,990 np.exp a np.sum np.exp a main 1 runtimewarning overflow encountered in exp main 1 runtimewarning invalid va...

Softmax函式原理及Python實現

softmax函式用於將分類結果歸一化,形成乙個概率分布。作用類似於二分類中的sigmoid函式。對於乙個k維向量z,我們想把這個結果轉換為乙個k個類別的概率分布p z softmax可以用於實現上述結果,具體計算公式為 s of tmax xi exp xi jex p xj softmax x ...