阅读 66

卷积之后怎么连入全连接层,全连接层和卷积层的区别

1. Softmax 作用:将网络输出值的各个维度映射为(0,1 )之间的概率值,并且所有维度的概率值之和为1。

具体理解

神经网络解决了多分类(n分类)的问题,最后一层的输出为n个神经元,所以对应于对每个输入样本输出[-2.3,1.9,3.4,-5.6]这样的n维向量,此时按一维

一般来说,此时网络的输出通过另一个softmax层,各维为[ 0,1 ]之间的概率值,且所有维的概率值之和为1。 将概率值最大的维度规定为对应于该输入样本的标签类,例如[ 0.1,0.2,0.6,0.1 ],作为第三类。

softmax的具体计算公式如下。 (指数函数可以将r上的所有值映射到(0,正无限) )。

pytorch代码调用

self.softmax=nn.softmax(dim=-1 ) # # # # # # # # # # # # # # # # # self.soft max=nn

dim=0:对第0维(每列)中的所有元素执行softmax运算

dim=1:对第1维(各行)的所有要素进行softmax运算

dim=-1:对倒数第一个维的所有元素进行softmax运算

2. LogSoftmax 作用通过按y取来解决溢出问题,同时便于CrossEntropyLoss的计算。

具体理解:如上图所示,由于softmax是按指数操作的,因此当高级别的输出(即softmax的输入)较大时,可能会发生溢出。 例如,在上图中,z1、z2、z3取较大的值时,超出了float表示的范围。 同样,当输入为负数且绝对值也较大时,分子和分母变得极小,有可能四舍五入为0后下溢。 在公式中是相对于softmax取对数的情况。 但是,在实际操作中通过了:

pytorch代码调用

self.logsoft max=nn.logsoft max (dim=-1 ) # # # # # # # # # # # # # # # # logsoft max

3 .两者的比较联系:上面的分析表明LogSoftmax其实是对Softmax的结果再进行一次log运算

区别:在数学上是LogSoftmax(y )=log ) softmax ) y ),但如果进行这两个单独操作,则速度慢,数值上也不稳定。 logsoftmax函数实际上是使用上述另一个公式准确计算输出和梯度。

参考:

33559 www.zhi Hu.com/question/358069078

3359 blog.csdn.net/Hao 5335156/article/details/80607732


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐