📜  torch.nn.Linear(in_features, out_features,bias=True) 描述 - Python (1)

📅  最后修改于: 2023-12-03 15:05:37.005000             🧑  作者: Mango

torch.nn.Linear(in_features, out_features, bias=True)

torch.nn.Linear是PyTorch中的一个线性层(全连接层)。它接受输入的特征,对每个输入特征进行加权求和,然后通过可选的偏置进行调整,最后输出一个新的特征。

参数:

  • in_features (int):输入特征的数量。
  • out_features (int):输出特征的数量。
  • bias (bool, optional):是否添加偏置。默认为True。

代码示例:

import torch.nn as nn

# 创建一个线性层,并设置输入特征数量为10,输出特征数量为5
linear_layer = nn.Linear(10, 5)

# 打印该层的权重矩阵和偏置矩阵
print(linear_layer.weight)
print(linear_layer.bias)

输出结果:

Parameter containing:
tensor([[-0.1784, -0.1574, -0.2804, -0.0452,  0.1411, -0.0836,  0.0116,  0.2902,
         -0.1733, -0.1999],
        [-0.2397, -0.1683, -0.2701,  0.1185,  0.2009, -0.0747, -0.1200,  0.3155,
         -0.0651, -0.1919],
        [ 0.1595, -0.2345,  0.0467,  0.2355, -0.1675, -0.1563, -0.2793,  0.2891,
         -0.3035, -0.1825],
        [-0.0192, -0.0308,  0.0413, -0.1923, -0.2211, -0.1294, -0.1354, -0.0424,
         -0.1550, -0.0774],
        [-0.2931,  0.0782,  0.0900, -0.3093, -0.1429, -0.1914, -0.0470, -0.2844,
          0.2202, -0.1766]], requires_grad=True)
Parameter containing:
tensor([ 0.1931,  0.1887, -0.1089, -0.3079, -0.0583], requires_grad=True)

如上所示,我们创建了一个输入特征数量为10,输出特征数量为5的线性层,并打印了它的权重矩阵和偏置矩阵。其中,权重矩阵的大小为5x10(5行10列),偏置矩阵的大小为5(1行5列)。需要注意的是,这些权重和偏置都是可学习的参数,我们可以通过反向传播算法不断迭代它们来让模型更好地拟合数据。