torch.nn.Linear是PyTorch中的一个模块,用于在神经网络中实现完全连接层。它表示输入张量的一个线性变换通过将它与一个权矩阵相乘并加上一个偏置项。
下面是torch.nn.Linear的语法:
torch.nn.Linear(in_features, out_features, bias=True)
参数:
in_features:每个输入样本的大小。它对应于输入张量中特征的个数。
out_features:每个输出样本的大小。它对应于层中神经元的数量。
bias(可选):如果设置为True(默认),层将学习一个附加的偏置项。如果设置为False,则不会添加偏差。
当您创建torch.nn.Linear 的实例时,它用随机值初始化权矩阵和偏置向量。在训练过程中,这些参数通过反向传播学习。
下面是一个如何在神经网络中使用torch.nn.Linear的例子:
import torch
import torch.nn as nn
# Define a fully connected layer with 5 input features and 3 output features
linear_layer = nn.Linear(5, 3)
# Generate some random input data
input_data = torch.randn(2, 5) # Batch size 2, 5 input features
# Pass the input data through the linear layer
output = linear_layer(input_data)
print(output)
在这个例子中,linear_layer表示一个具有5个输入特征和3个输出特征的完全连接层。我们通过这一层传递一批形状为(2,5)的输入数据,得到一个形状为(2,3)的输出张量(批大小为2,3个输出特征)。线性层的权重和偏置在层创建时自动初始化,并在训练过程中进行更新,以最小化损失。