在PyTorch中,nn.Sequential
是一个有序的容器,序化模型,它包含一系列模块(即层)。数据(输入)在nn.Sequential
中按照模块在构造函数中传入的顺序进行传递。这种简单的线性堆叠使得模型的定义变得非常简洁。
下面是一个使用nn.Sequential
定义简单神经网络的示例:
import torch
import torch.nn as nn
# 定义一个简单的Sequential模型
model = nn.Sequential(
nn.Linear(in_features=13, out_features=6, bias=True),
nn.ReLU(), # 激活函数
nn.Linear(in_features=6, out_features=1, bias=True),
)
# 创建一个随机输入张量
input_tensor = torch.randn(1, 13)
print("input_tensor:",input_tensor)
# 将输入张量传递给模型以获取输出
output_tensor = model(input_tensor)
print("output_tensor:",output_tensor)
在上面的示例中,nn.Sequential
包含了两个线性层(nn.Linear
)和一个ReLU激活函数。当我们将输入张量传递给模型时,数据首先通过第一个线性层,然后经过ReLU激活函数,最后通过第二个线性层。
nn.Sequential
通常用于定义简单的、层与层之间直接相连的模型。然而,对于更复杂的模型(如包含分支或循环的模型),您可能需要使用nn.Module
来定义自己的模型类。