nn.Sequential用法
时间: 2023-11-12 20:59:15 浏览: 71
pytorch构建网络模型的4种方法
`nn.Sequential` 是 PyTorch 中的一个类,用于构建简单的神经网络模型,它可以按照传入的顺序连接多个层,这些层将会被依次执行。下面是一个简单的例子:
```python
import torch.nn as nn
model = nn.Sequential(
nn.Linear(784, 256),
nn.ReLU(),
nn.Linear(256, 128),
nn.ReLU(),
nn.Linear(128, 10),
nn.LogSoftmax(dim=1)
)
```
以上代码构建了一个包含三个线性层、两个 ReLU 激活函数和一个 LogSoftmax 函数的神经网络模型。注意,这里的 `nn.Linear` 表示一个线性变换层,其参数为输入和输出数据的维度。
在实际使用中,我们可以通过 `model(input_tensor)` 来对输入数据进行前向传播运算,例如:
```python
input_tensor = torch.randn(64, 784)
output_tensor = model(input_tensor)
```
这里的 `input_tensor` 是一个大小为 `(64, 784)` 的张量,表示有 64 个样本,每个样本有 784 个特征,然后我们通过 `model(input_tensor)` 进行前向传播运算,得到大小为 `(64, 10)` 的输出张量,表示每个样本属于 10 个类别的概率分布。
需要注意的是,`nn.Sequential` 只适用于那些按照顺序连接的简单神经网络模型,如果需要构建更加复杂的模型,可以使用 `nn.Module` 类来自定义模型。
阅读全文