使用python计算softmax激活函数
我试图编写一个方法来计算SoftMax激活函数,该函数以矩阵或数组作为输入,并将SoftMax函数应用于每一行 以下是我尝试过的:使用python计算softmax激活函数,python,numpy,softmax,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]
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
只是一个列表时,它不起作用您只需将列表
转换为np.数组
转换:
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()
但是“x-np.max(x)”方法不会用每行的最大值减去每行,而是用所有条目的最大值减去每行,可以吗?试试这个例子:a=[[1,2,3],[4,5,6]]print(a-np.max(a)),它的输出是:[-5-4-3][-2-10]@user42493你能给我一些示例输入吗?是的,它需要用矩阵的最大值减去每个元素,你不觉得吗?如果行是一个要求,那么您仍然可以这样做好,那么e_x.sum()呢?这给出了矩阵中所有项目的总和,但我们需要将每行e_x除以执行总和的文档中每行e_x?的总和:轴或轴。默认值axis=None将对输入数组的所有元素求和。如果轴为负,则从最后一个轴到第一个轴计数。