Pytorch中nn.Linear的理解

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

Pytorch中nn.Linear的理解_第1张图片

 

以上拙作是个人理解,也是我第一篇文章,如有错误请指正。

你可能感兴趣的:(pytorch,深度学习,python)