全连接层有batchsize吗
发布网友
发布时间:2023-07-22 02:20
我来回答
共2个回答
热心网友
时间:2023-09-11 16:02
有 对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的值符合我们最后的结果
热心网友
时间:2023-09-11 16:02
全连接层有batchsize吗
答:对CNN来说图片以batchsize的大小并行送入神经网络,经过一些卷积,到最后送入全连接层进行分类...
全连接层与 GAP - IT - - learning的博客 - CSDN博客 - 全连接层放在什么...
2021年8月1日全连接层的输入与输出一般都设置为二维张量,形状通常为 [batch_size, size],