pytorch实现多层感知机归简洁版
时间: 2023-07-07 08:23:19 浏览: 124
好的,以下是PyTorch实现多层感知机(MLP)的简洁版代码:
```python
import torch
from torch import nn
# 定义MLP模型
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):
x = self.fc1(x)
x = self.relu(x)
x = self.fc2(x)
return x
# 实例化模型
input_size = 784 # 输入维度
hidden_size = 256 # 隐藏层维度
output_size = 10 # 输出维度
net = MLP(input_size, hidden_size, output_size)
# 定义损失函数和优化器
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(net.parameters(), lr=0.01)
# 训练模型
for epoch in range(100):
for data in train_loader:
inputs, labels = data
inputs = inputs.view(inputs.size(0), -1)
optimizer.zero_grad()
outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
```
以上代码中,我们首先定义了一个MLP模型,包含两个全连接层和一个ReLU激活函数。然后我们实例化模型,定义损失函数和优化器,并进行训练。在训练过程中,我们使用交叉熵损失函数,并使用随机梯度下降优化器更新模型参数。
阅读全文