def softmax(x):
if x.ndim == 2:
x = x.T
x = x - np.max(x, axis=0)
y = np.exp(x) / np.sum(np.exp(x), axis=0)
return y.T
x = x - np.max(x) # 溢出对策
return np.exp(x) / np.sum(np.exp(x))
举个例子x=[1,1,1] softmax(x)=[0.33,0.33,0.33]
也就是把一个行向量归一化,里面所有值加起来等于1
看个复杂点的x=[1,2,3,4]
softmax(x)=[]
有兴趣的可以计算下,晚安喽~