给我一个matlib神经网路的训练代码
时间: 2024-02-24 19:53:26 浏览: 19
好的,以下是一个基于 PyTorch 的神经网络训练代码,使用了 Matplotlib 进行可视化:
```python
import torch
import torch.nn as nn
import torch.optim as optim
import matplotlib.pyplot as plt
import numpy as np
# 定义神经网络模型
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(1, 10)
self.fc2 = nn.Linear(10, 1)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
# 生成数据集
x_train = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1)
y_train = 2*x_train + torch.randn(x_train.size()) * 0.3
# 定义模型、损失函数和优化器
net = Net()
criterion = nn.MSELoss()
optimizer = optim.SGD(net.parameters(), lr=0.1)
# 训练模型
loss_list = []
for epoch in range(200):
optimizer.zero_grad()
output = net(x_train)
loss = criterion(output, y_train)
loss.backward()
optimizer.step()
loss_list.append(loss.item())
# 可视化训练过程
plt.plot(loss_list)
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.show()
```
这个神经网络模型是一个单层全连接神经网络,输入维度为 1,输出维度为 1,使用均方误差作为损失函数,使用随机梯度下降作为优化器,训练数据集是一个带有噪声的线性函数。训练过程中会输出每个 epoch 的损失值,并且使用 Matplotlib 进行可视化。