用pytorch写一个二分类
时间: 2023-05-21 19:04:09 浏览: 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(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
net = Net()
criterion = nn.BCELoss()
optimizer = optim.SGD(net.parameters(), lr=0.1)
# 训练模型
for epoch in range(1000):
optimizer.zero_grad()
output = net(torch.Tensor([[0, 0], [0, 1], [1, 0], [1, 1]]))
target = torch.Tensor([[0], [1], [1], [0]])
loss = criterion(output, target)
loss.backward()
optimizer.step()
# 测试模型
output = net(torch.Tensor([[0, 0], [0, 1], [1, 0], [1, 1]]))
print(output)
```
这个神经网络有一个输入层,一个隐藏层和一个输出层。输入层有两个神经元,隐藏层有 10 个神经元,输出层有一个神经元。我们使用 sigmoid 函数作为激活函数,使用二元交叉熵作为损失函数,使用随机梯度下降算法进行优化。在训练过程中,我们使用四个样本进行训练,每个样本有两个特征和一个标签。在测试过程中,我们使用相同的四个样本进行测试,输出每个样本的预测结果。
阅读全文