使用python计算softmax激活函数

时间:2019-11-17 18:46:41

标签: python numpy softmax

我试图编写一种方法来计算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只是一个列表时,它将不起作用

1 个答案:

答案 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()