首页 > 编程知识 正文

softmax函数求导,MAX函数的使用方法

时间:2023-05-05 10:10:27 阅读:49894 作者:260

对于softmax函数,在单独提取和使用它时,意外出现了很多错误,所以我们测试并比较一下在网上找到的几个编程代码。 一维时对于一维向量很简单,可以直接使用以下编程代码。

考虑到defsoftmax(x ) :e_x=NP.exp(x-NP.max ) x ) ) returne_x/e_x.sum ) axis=0)二维阵列的情况

第一个defsoftmax2_1(x ) : print (初始(n (,x ) print )、x.x.ndim ) if x.ndim==2: x=x.T print ) ) ) axis=0) print (进行溢出防止操作后的(n (,x ) y=np.exp(x ) x )/NP.sum (NP.exp ) x ),axis=0) print )最终结果33660

x2=NP.array ([ 1.0,2.2,3.3 ] ) )。

x3=NP.array ([ 1.0,2.2,3.3 ] ) ) ) )。

x4=NP.Array([1.0]、[2.2]、[3.3]] )

实际上,不能进行这样的输入。 因为这不是多分类任务,所以这里只有测试代码

第二个defsoftmax2_2(x ) : print (初始(n (,x ) print ),x.ndim ) temp=NP.max(x,axis=1) #prinnnt 1) x=x

x1=NP.Array([1.3.3,2.5 ],[ 2.1,3.2,5.3 ] ) )

x2=NP.array ([ 1.0,2.2,3.3 ] )执行错误: numpy.axis error : axis1isoutofboundsforarrayofdimension 1

x3=NP.array ([ 1.0,2.2,3.3 ] ) ) ) )。

x4=NP.Array([1.0]、[2.2]、[3.3]] )

第三个是错误的代码:

defsoftmax2_3(x ) : print (初始: (n ),x ) print )、x.x.ndim (max=NP.max (x ) x,axis=1) print ) ) max.shape(y=x-maxreturnNP.exp ) y )/NP.sum ) NP.exp ) y,axis=1) x1=NP.array([[1.3.3,2.5 ] )

执行错误: value error : operandscouldnotbebroadcasttogetherwithshapes (2,3 ) ) 2,

通常,将x为n行m列的矩阵作为输入,取每列的最大值的矩阵为(n,)的两者不能进行矩阵的运算。

注: Numpy在加减矩阵和向量时,首先要求矩阵的列数与向量的维数相等。 然后,将矩阵的各行与向量加减运算得出结果。 如下所示。

x=NP.array ([ 1,2,3 ]、[ 4,5,6 ]、[ 7,8,9 ]、[ 10,11,12 ] ) print(x ) x ) ) 4,3 [ 1,2,3 ] inmodulevalueerror : operandscouldnotbebroadcasttogetherwithshapes (4,3 ) ) 4,

参考链接:实现softmax函数代码的思考- CuriosityWang -博客圈(cnblogs.com)。

softmax函数实现-解析为什么使用矩阵倒置的方式_w199611027017博客-CSDN博客

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。