python代码实现使用adam优化器优化BP神经网络实现二分类问题
时间: 2023-09-16 19:08:04 浏览: 72
可以使用以下代码实现:
```
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(2, 10)
self.fc2 = nn.Linear(10, 1)
self.sigmoid = nn.Sigmoid()
def forward(self, x):
x = self.fc1(x)
x = self.sigmoid(x)
x = self.fc2(x)
x = self.sigmoid(x)
return x
# 定义数据集
train_data = torch.Tensor([
[0, 0],
[0, 1],
[1, 0],
[1, 1]
])
train_label = torch.Tensor([
[0],
[1],
[1],
[0]
])
# 实例化模型、定义损失函数和优化器
net = Net()
criterion = nn.BCELoss()
optimizer = optim.Adam(net.parameters())
# 训练模型
for epoch in range(10000):
optimizer.zero_grad()
output = net(train_data)
loss = criterion(output, train_label)
loss.backward()
optimizer.step()
# 使用模型进行预测
test_data = torch.Tensor([
[0, 0],
[0, 1],
[1, 0],
[1, 1]
])
net.eval()
result = net(test_data)
print(result)
```
这段代码使用了 Adam 优化器优化 BP 神经网络,并在二分类问题上进行训练和预测。
阅读全文