大家好,欢迎来到IT知识分享网。
1.全连接网络
2.全连接是如何实现的
大家都知道全连接是输入层的每个参数都参与了输出层每个参数的计算。但具体是如何实现的呢?
总结来说:是用和输入层同样大小同样通道数的卷积来实现的。
举例来说:
- 全连接把卷积输出的二维特征图(feature map)转化成一个一维向量,也就是说:最后的两列小圆球就是两个全连接层,在最后一层卷积结束后,又进行了一次池化操作,输出了20个12×12的图像(20指最后一层的厚度),然后通过了一个全连接层变成了1×100的向量(第一个全连接层神经元的个数是100)
怎么做到的?
- 该操作其实就是用100个20x12x12的卷积核卷积出来的,对于输入的每一张特征图,都使用一个和图像大小一样的核卷积进行卷积运算,这样整幅图就变成了一个数了,如果厚度是20就是那20个核卷积完了之后相加求和。这样就能把一张图高度浓缩成一个数了。
- 但是全连接的参数实在是太多了,你想这张图里就有20个12x12x100个参数,前面随便一层卷积,假设卷积核是7*7的,厚度是64,那也才7x7x64,所以现在的趋势是尽量避免全连接,目前主流的一个方法是全局平均池化(GlobalAveragePooling)。也就是最后那一层的feature map(最后一层卷积的输出结果),直接求平均值。有多少种分类就训练多少层,这十个数字就是对应的概率。
3.全连接代码实现
import torch.nn as nn fc1 = nn.Linear(320, 50) #输入320维,输出50维的全连接网络
参考资料:
- https://blog.csdn.net/gongliming_/article/details/
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122916.html