PyTorch中nn.Linear公式里的T是什么?相关线性变换疑问确认
PyTorch nn.Linear 公式解析
两个公式的一致性
官方给出的矩阵形式公式 y = xA^T + b 和你写的标量展开式 y = (x[1] * w[1]) + (x[2] * w[2]) + b 完全一致,前者是批量输入场景下的通用矩阵表达,后者是单样本、输入维度为2时的具体展开形式。
变量含义说明
x:输入张量。单样本输入时形状为(input_dim,),对应你例子中的x[1]、x[2];批量输入时形状为(batch_size, input_dim)。A:nn.Linear层的权重矩阵,形状为(output_dim, input_dim)。公式中的T代表矩阵转置操作,A^T是将权重矩阵转置为(input_dim, output_dim),这样才能和输入x完成维度匹配的矩阵乘法。b:偏置张量,形状为(output_dim,),会自动广播到矩阵乘法结果的形状后执行相加操作。
实例验证
假设输入维度为2,输出维度为1:
- 权重矩阵
A = [[w1, w2]](对应输出维度1,输入维度2) - 转置后
A^T = [[w1], [w2]] - 输入单样本
x = [x1, x2],执行矩阵乘法xA^T得到x1*w1 + x2*w2,加上偏置b后,结果和你写的展开式完全相同。
内容的提问来源于stack exchange,提问作者Garrett
相关产品推荐
相关产品推荐

