利用pytorch写一个人工神经网络
时间: 2024-02-23 10:27:49 浏览: 14
好的,下面是一个简单的人工神经网络的例子,使用 PyTorch 实现:
```python
import torch
import torch.nn as nn
# 定义一个简单的神经网络
class SimpleNet(nn.Module):
def __init__(self):
super().__init__()
self.layer1 = nn.Linear(10, 5)
self.layer2 = nn.Linear(5, 1)
self.activation = nn.Sigmoid()
def forward(self, x):
x = self.layer1(x)
x = self.activation(x)
x = self.layer2(x)
x = self.activation(x)
return x
# 初始化模型
net = SimpleNet()
# 定义损失函数和优化器
criterion = nn.MSELoss()
optimizer = torch.optim.SGD(net.parameters(), lr=0.01)
# 准备数据
x = torch.randn(100, 10)
y = torch.randn(100, 1)
# 训练网络
for epoch in range(100):
# 前向传播
y_pred = net(x)
# 计算损失
loss = criterion(y_pred, y)
# 反向传播
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 打印损失
print('Epoch {}, Loss: {:.4f}'.format(epoch+1, loss.item()))
```
上面的代码定义了一个简单的神经网络,包含两个全连接层和一个 Sigmoid 激活函数。我们使用均方误差作为损失函数,随机梯度下降作为优化器,对随机生成的输入数据进行训练。在每个 epoch 中,我们执行前向传播、计算损失、反向传播和梯度更新,然后打印损失。