nn.Linear中:nn.Linear源码中用到了F.linear()函数
torch.nn.Linear(in_features, out_features, bias=True, device=None, dtype=None)
参数依次是 每个输入样本的大小 每个输出样本的大小 偏差
分配到的设备的对象, gpu、cpu这方面的后续探究 描述数据的类型。
全连接层也叫线性层
F.linear的F是 from torch.nn import functional as F
线性层,简单理解:就是小学学的y=wx+b, 这里的x就是样本,w是权重,b是偏置。
也可以用来减少连接层神经元个数,达到简单的降维的目的。
线性层对于比较需要较复杂的网络模型不友好,也就是线性层的特征表达能力是有限的,
所以用激活函数可以提高非线性表示。
import torch
from torch import nn
from torch.nn import functional as F
#下面代码空格地方可以输出结果方便查看
T= torch.rand(3,8) #样本T
net1=nn.Linear(8,1)
w=net1.weight #获得上面初始化的线性层net1的权值w
# print(w)
print(net1(T))
torch.matmul(T,w.T)
F.linear(T,w)
net1(T)-F.linear(T,w)
net1.bias
weight
以上拙作是个人理解,也是我第一篇文章,如有错误请指正。