pytorch 简单神经网络搭建
时间: 2023-08-24 18:08:10 浏览: 111
好的,下面是一个简单的 PyTorch 神经网络搭建的示例代码:
```
import torch
import torch.nn as nn
import torch.optim as optim
# 定义一个简单的神经网络
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(10, 5)
self.fc2 = nn.Linear(5, 1)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
# 创建一个网络实例
net = Net()
# 定义 loss 函数和 optimizer
criterion = nn.MSELoss()
optimizer = optim.SGD(net.parameters(), lr=0.01)
# 准备数据
inputs = torch.randn(1, 10)
targets = torch.randn(1, 1)
# 训练网络
for epoch in range(1000):
# 前向传播
outputs = net(inputs)
loss = criterion(outputs, targets)
# 反向传播
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 每 100 次迭代输出一次损失值
if epoch % 100 == 0:
print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, 1000, loss.item()))
```
这个示例代码定义了一个包含两个全连接层的神经网络,输入是一个长度为 10 的向量,输出是一个标量。我们使用均方误差作为 loss 函数,使用随机梯度下降作为优化器。在训练过程中,我们将输入和目标数据都随机生成,并且迭代 1000 次,每 100 次输出一次损失值。
阅读全文