python零基础,最近赶鸭子上架学习。对Linear产生了一定的疑惑,查阅资料后得到了解答。
首先,nn.Linear的一般形式为:
nn.Linear(in_features,out_features,bias = True )
大致就是通过线性变换改变样本大小
线性变换:y=A x + b
既然改变一定有输入和输出,从形式中可以看出有in_features和out_features,但这两个只是输入输出张量的大小。那么这个nn.Linear是如何对输入进行影响并得到输出的呢?
参考https://www.cnblogs.com/Archer-Fang/p/10645473.html的例子
代码:
m = nn.Linear(20, 30)
input = autograd.Variable(torch.randn(128, 20))
output = m(input)
print(output.size())
#输出
torch.Size([128, 30])
对于此时的m具体叫什么并不了解,希望各位指正后我做出标注。但就是先创建m再产生output的一个过程。
本文介绍了PyTorch中的nn.Linear模块,它是神经网络中实现线性变换的层。nn.Linear通过矩阵乘法和偏置项将输入张量转换为输出张量。在给定的例子中,创建了一个nn.Linear(20, 30)层,将每个样本的20维特征映射到30维。输入张量的大小为(128, 20),经过线性层后,输出张量的大小变为(128, 30)。nn.Linear的核心在于权重矩阵和偏置向量的计算,它们在训练过程中会不断更新以优化模型性能。
894

被折叠的 条评论
为什么被折叠?



