用python代码写一个MLP网络
时间: 2024-05-03 09:19:55 浏览: 99
你可以使用以下代码来写一个多层感知机(MLP)网络:
```
import numpy as np
import torch
import torch.nn as nn
import torch.nn.functional as F
# 定义MLP网络结构
class MLP(nn.Module):
def __init__(self, input_size, hidden_size, num_classes):
super(MLP, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size)
self.fc2 = nn.Linear(hidden_size, num_classes)
def forward(self, x):
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x
# 定义输入数据
inputs = np.random.randn(100, 28 * 28).astype(np.float32)
labels = np.random.randint(0, 10, (100,)).astype(np.int64)
# 将数据转换为张量
inputs = torch.tensor(inputs)
labels = torch.tensor(labels)
# 定义模型和损失函数
model = MLP(input_size=28 * 28, hidden_size=64, num_classes=10)
criterion = nn.CrossEntropyLoss()
# 定义优化器
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
# 训练模型
for epoch in range(100):
# 前向传播
outputs = model(inputs)
loss = criterion(outputs, labels)
# 反向传播和优化
optimizer.zero_grad()
loss.backward()
optimizer.step()
```
这是一个简单的MLP代码示例,其中使用了PyTorch框架。 在这个例子中,我们定义了一个带有一个隐藏层的MLP模型,并使用随机生成的数据进行了100轮训练。
阅读全文