PyTorch中nn.Linear的含义及单元、权重与输入运算疑问
PyTorch中nn.Linear相关问题解答
1. PyTorch中的nn.Linear代表什么?
nn.Linear是PyTorch封装的全连接层(线性层),核心是对输入张量执行线性变换:y = x @ W.T + b。其中:
x为输入特征张量W是可学习的权重矩阵,维度为(out_features, in_features)b是可学习的偏置向量,维度为(out_features,)
它用于将输入特征映射到新的特征空间,是神经网络中拟合线性关系、做特征变换的基础模块。
2. PyTorch中的nn.Linear是否仅代表一个神经元单元?若该单元仅接收一个输入并输出一个结果,其权重是否仅为一个?若向该单元输入一个向量,是否会执行标量乘法?
nn.Linear不局限于单个神经元单元:它可以对应由多个神经元组成的全连接层。比如nn.Linear(in_features=10, out_features=20)就包含20个神经元,每个神经元都会接收10维输入特征,独立计算线性输出。- 当配置为仅接收1个输入、输出1个结果时(即
nn.Linear(in_features=1, out_features=1)),权重确实是单个标量,此时计算逻辑为y = x * W + b,其中W是单个可学习参数,b是单个偏置标量。 - 若向该单元输入一个向量(比如输入是维度为
(batch_size, N)的张量,对应in_features=N,out_features=1),不会执行标量乘法:此时权重是维度为(1, N)的向量,实际执行的是输入向量与权重向量的点积运算,再加上偏置,即y = sum(x_i * W_i for i in 0..N-1) + b。
内容的提问来源于stack exchange,提问作者Tests Coll
相关产品推荐
相关产品推荐

