pytorch多层感知机代码
时间: 2023-06-09 14:03:18 浏览: 119
多层感知机代码实现.py
好的,以下是一个使用 PyTorch 实现的简单多层感知机的代码:
```
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.fc2 = nn.Linear(hidden_size, hidden_size)
self.fc3 = nn.Linear(hidden_size, output_size)
self.relu = nn.ReLU()
def forward(self, x):
out = self.fc1(x)
out = self.relu(out)
out = self.fc2(out)
out = self.relu(out)
out = self.fc3(out)
return out
# 定义输入、隐藏层和输出的大小
input_size = 100
hidden_size = 50
output_size = 10
# 初始化多层感知机
model = MLP(input_size=input_size, hidden_size=hidden_size, output_size=output_size)
# 定义损失函数和优化器
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
# 训练模型
for epoch in range(1000):
# 前向传播计算损失
outputs = model(inputs)
loss = criterion(outputs, labels)
# 反向传播更新参数
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 打印训练结果
if epoch % 100 == 0:
print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, 1000, loss.item()))
```
这是一个简单的三层感知机,其中包括两个隐藏层。我们定义了输入层大小为 100,隐藏层大小为 50,输出层为 10。训练时,我们使用交叉熵损失函数和 Adam 优化器。
阅读全文