2025年Pytorch nn.Linear 全连接层的原理和作用(个人理解)

Pytorch nn.Linear 全连接层的原理和作用(个人理解)一 官网说明 二 个人理解 对 CNN 来说图片以 batchsize 的大小并行 送入神经网络 经过一些卷积 到最后送入全连接层进行分类 送入全连接层之前的每个特征图已经被拉平 变成 1xn 的形式 这里的 n 就是 x 中的 3 x 中的 10 代表有 10 个 1 所以 三

大家好,我是讯享网,很高兴认识大家。

一、官网说明:


讯享网

二、个人理解

      对CNN来说图片以batchsize的大小并行送入神经网络,经过一些卷积,到最后送入全连接层进行分类,送入全连接层之前的每个特征图已经被拉平(变成1xn的形式,这里的n就是x中的3,x中的10代表有10个1),所以(三、计算过程)的x中的10行可以理解为batchsize(即10张图片),x中的3列可以理解为每个图片被提取了3个特征,最后的y可以理解为对这10个图片进行一个5分类,分类的结果为这5个数中最大的那个数所对应的索引,具体分类的结果为索引对应的类别。

三、计算过程

计算原理的公式,可以理解为简单的线性方程。

已知输入x:

x=torch.randn([10,3]) 输出:tensor([[-0.2022, -1.0258, -0.0116], [ 0.4581, -1.4392, 0.7463], [ 0.4723, 0.7842, 2.1767], [-1.6525, -0.1205, -1.7498], [-0.9119, -0.1080, 0.4499], [-0.2130, 0.5349, -0.5764], [ 0.8852, -0.2906, 0.4138], [ 0.4349, 0.1988, 0.5386], [ 1.2275, 0.3119, -0.7539], [-0.3409, 0.3802, -0.6528]])

讯享网

x为一个10行3列的tensor,也可以理解为矩阵,方便我们理解计算公式,也可以理解为10个样本(也就是神经网络中的batchsize=10),每个样本拥有3个特征(也就是channel=3)

定义一个全连接层:

讯享网lin=nn.Linear(3,5)

输入通道为3,输出通道为5,也可以理解为将输入的3个特征转换成5个特征

将x带入全连接层得到y:

y=lin(x) 输出y为: tensor([[-0.2761, 0.9752, -0.0340, 1.1611, 1.1389], [-0.3531, -0.6225, 0.2387, 0.0675, -0.2862], [-0.2320, 0.0627, 0.0128, 0.5417, 0.2288], [-0.2319, 0.0789, -0.0258, 0.5046, 0.0307], [ 0.1834, -0.5264, -0.3203, 0.3163, -0.1088], [-0.0793, 0.0215, -0.1705, 0.5240, 0.0298], [ 0.0977, -0.4148, -0.2549, 0.3503, -0.0740], [-0.1738, 0.3037, -0.0414, 0.7681, 0.6529], [ 0.3720, -0.6520, -0.4788, 0.3220, -0.0782], [-0.1595, -1.0845, 0.0117, -0.2869, -1.1594]],

得到的y为一个10行5列的tensor,理解为原本每个样本拥有3个特征值,现在变成了5个。

可以理解为矩阵相乘,x【10,3】乘以A【3,5】得到y【10,5】 ( 我不知道这样理解对不)

神经网络的训练,训练的是A和b,找到一个合适的A和b使得y的值符合我们最后的结果

小讯
上一篇 2025-03-28 12:24
下一篇 2025-03-17 09:23

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/17990.html