神经网络NNDL二分类代码
时间: 2023-12-20 21:30:08 浏览: 36
以下是一个简单的二分类神经网络的代码示例,其中包括两个线性层和一个Logistic算子(Sigmoid激活函数):
```python
import torch
class TwoLayerNet(torch.nn.Module):
def __init__(self, input_size, hidden_size, output_size):
super(TwoLayerNet, self).__init__()
self.linear1 = torch.nn.Linear(input_size, hidden_size)
self.linear2 = torch.nn.Linear(hidden_size, output_size)
self.sigmoid = torch.nn.Sigmoid()
def forward(self, x):
h = self.linear1(x)
h_sigmoid = self.sigmoid(h)
y_pred = self.linear2(h_sigmoid)
return y_pred
# 创建一个输入大小为5,隐藏大小为10,输出大小为1的二分类神经网络
model = TwoLayerNet(5, 10, 1)
# 定义损失函数和优化器
criterion = torch.nn.BCEWithLogitsLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.1)
# 训练模型
for epoch in range(100):
# 前向传播
y_pred = model(x_data)
# 计算损失
loss = criterion(y_pred, y_data)
# 反向传播
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 打印损失
print('Epoch: {}, Loss: {:.4f}'.format(epoch+1, loss.item()))
```