py torch多层感知机搭建
时间: 2024-05-10 08:15:34 浏览: 113
PyTorch中的多层感知机(Multilayer Perceptron,MLP)通常使用全连接层(Fully Connected Layer)实现。以下是一个简单的MLP模型的搭建过程:
```python
import torch
import torch.nn as nn
class MLP(nn.Module):
def __init__(self, input_size, hidden_size, output_size):
super(MLP, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size) # 输入层到隐藏层
self.relu = nn.ReLU() # 激活函数
self.fc2 = nn.Linear(hidden_size, output_size) # 隐藏层到输出层
def forward(self, x):
out = self.fc1(x)
out = self.relu(out)
out = self.fc2(out)
return out
```
在这里,我们定义了一个名为MLP的类,继承了nn.Module类,其构造函数__init__中包含了三个成员:fc1、relu、fc2,分别表示全连接层、激活函数和全连接层。我们在forward函数中定义了模型的前向传播过程,即输入数据x经过fc1、relu和fc2三个成员,最终得到输出out。
上述代码中,我们定义了一个输入层的大小input_size、一个隐藏层的大小hidden_size,以及一个输出层的大小output_size。在初始化函数中,我们实例化了两个全连接层,其中第一个层从输入层到隐藏层,第二个层从隐藏层到输出层。在模型的前向传播过程中,我们首先通过第一个全连接层fc1对输入数据进行线性变换,然后将结果输入到激活函数relu中,最后通过第二个全连接层fc2输出最终的结果。
使用该模型时,我们需要指定输入层的大小、隐藏层的大小和输出层的大小,例如:
```python
input_size = 784 # MNIST数据集中每个样本有784个特征
hidden_size = 256 # 隐藏层大小为256
output_size = 10 # 输出层大小为10,对应10个数字分类
model = MLP(input_size, hidden_size, output_size)
```
这样就可以实例化一个MLP模型了。
阅读全文