Python学习之nn.Linear

本文介绍了PyTorch中的nn.Linear模块,它是神经网络中实现线性变换的层。nn.Linear通过矩阵乘法和偏置项将输入张量转换为输出张量。在给定的例子中,创建了一个nn.Linear(20, 30)层,将每个样本的20维特征映射到30维。输入张量的大小为(128, 20),经过线性层后,输出张量的大小变为(128, 30)。nn.Linear的核心在于权重矩阵和偏置向量的计算,它们在训练过程中会不断更新以优化模型性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的一个过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值