评价此页

Linear#

class torch.nn.modules.linear.Linear(in_features, out_features, bias=True, device=None, dtype=None)[源代码]#

对输入数据应用仿射线性变换: y=xAT+by = xA^T + b.

此模块支持 TensorFloat32

在某些 ROCm 设备上,当使用 float16 输入时,此模块将对反向传播使用不同精度

参数
  • in_features (int) – 每个输入样本的大小

  • out_features (int) – 每个输出样本的大小

  • bias (bool) – 如果设置为 False,则该层将不学习加性偏置。默认值:True

形状
  • 输入: (,Hin)(*, H_\text{in}),其中 * 表示任意数量的维度(包括零个),并且 Hin=in_featuresH_\text{in} = \text{in\_features}

  • 输出: (,Hout)(*, H_\text{out}),其中除了最后一个维度外,所有维度都与输入形状相同,并且 Hout=out_featuresH_\text{out} = \text{out\_features}

变量
  • weight (torch.Tensor) – 模块的可学习权重,形状为 (out_features,in_features)(\text{out\_features}, \text{in\_features})。其值从 U(k,k)\mathcal{U}(-\sqrt{k}, \sqrt{k})初始化,其中 k=1in_featuresk = \frac{1}{\text{in\_features}}

  • bias – 模块的可学习偏差,形状为 (out_features)(\text{out\_features})。如果 biasTrue,则值从 U(k,k)\mathcal{U}(-\sqrt{k}, \sqrt{k})初始化,其中 k=1in_featuresk = \frac{1}{\text{in\_features}}

示例

>>> m = nn.Linear(20, 30)
>>> input = torch.randn(128, 20)
>>> output = m(input)
>>> print(output.size())
torch.Size([128, 30])
extra_repr()[源代码]#

返回模块的额外表示。

返回类型

str

forward(input)[源代码]#

执行前向传播。

返回类型

张量

reset_parameters()[源代码]#

根据 __init__ 中使用的初始化重置参数。