Shortcuts

线性

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

对传入的数据应用线性变换:y=xAT+by = xA^T + b

此模块支持 TensorFloat32

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

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

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

  • 偏置 (布尔值) – 如果设置为 False,该层将不会学习一个加性偏置。 默认值: True

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

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

Variables
  • 权重 (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}}

  • 偏差 – 模块的可学习偏差,形状为 (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])
优云智算