使用Pytorch完成逻辑回归问题 代码
时间: 2023-07-05 09:27:16 浏览: 112
基于 Pytorch 实现 逻辑回归算法实现
好的,下面是使用PyTorch完成逻辑回归问题的代码:
```python
import torch
import torch.nn as nn
import torch.optim as optim
from torch.autograd import Variable
# 定义逻辑回归模型
class LogisticRegression(nn.Module):
def __init__(self):
super(LogisticRegression, self).__init__()
self.linear = nn.Linear(2, 1)
def forward(self, x):
out = torch.sigmoid(self.linear(x))
return out
# 准备数据
x_data = Variable(torch.Tensor([[1.0, 2.0], [2.0, 3.0], [3.0, 1.0], [4.0, 3.0], [5.0, 3.0], [6.0, 2.0]]))
y_data = Variable(torch.Tensor([[0.], [0.], [0.], [1.], [1.], [1.]]))
# 实例化模型
model = LogisticRegression()
# 定义损失函数和优化器
criterion = nn.BCELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
# 训练模型
for epoch in range(10000):
optimizer.zero_grad()
outputs = model(x_data)
loss = criterion(outputs, y_data)
loss.backward()
optimizer.step()
if (epoch+1) % 1000 == 0:
print('Epoch [%d/%d], Loss: %.4f' % (epoch+1, 10000, loss.data))
# 测试模型
model.eval()
test_input = Variable(torch.Tensor([[1.0, 5.0]]))
test_output = model(test_input)
print('Predicted value on test input [1.0, 5.0]: %.4f' % test_output.data)
```
这个例子中,我们定义了一个包含两个特征的逻辑回归模型,并使用梯度下降算法训练模型。我们的训练数据是一些二维向量,每个向量有一个二元标签,表示属于哪一类。最后,我们使用训练好的模型进行预测。
阅读全文