我试图编写一种方法来计算SoftMax激活函数,该函数采用矩阵或数组作为输入,并将softmax函数应用于每一行。
这是我尝试过的:
import numpy as np
def softmaxSingle(x):
e_x = np.exp(x - np.max(x))
return e_x / e_x.sum()
def softmax( x):
if np.shape(x)[0]>1:
result=[[]]*np.shape(x)[0]
for i in range(len(result)):
result[i]=list(softmaxSingle(x[i]))
return list(result)
e_x = np.exp(x - np.max(x))
return e_x / e_x.sum()
当我尝试SoftMax(x)
(其中x
是矩阵)时,它会运行(尽管我不知道它是否会产生正确的答案)。当x
只是一个列表时,它将不起作用
答案 0 :(得分:1)
您只需将list
转换为np.array
:
import numpy as np
def softmax(x):
"""Compute softmax values for each sets of scores in x."""
if isinstance(x, list):
x = np.array(x)
e_x = np.exp(x - np.max(x))
return e_x / e_x.sum()