在torch.nn.function.linear的文档中(https://pytorch.org/docs/stable/ generated/torch.nn.function.linear.html),权重输入的维度为(out_features, in_features) 然后在计算输出时对权重矩阵进行转置:y=xA^T+b。他们为什么这样做而不是采用维度矩阵 W(in_features、out_features)并执行 y=xW+b?
通过执行 y=xW+b 尺寸将匹配,因此我找不到上述的明确原因。
尚不完全清楚他们为什么这样做。很久以前,由于某种原因,它就以这种方式实现了,现在改变它是向后不兼容的。您可以在here找到对此的讨论。转置操作不会增加任何开销,因此没有性能激励来更改它。