使用pytorch写一个线性回归分类器
时间: 2023-09-06 11:14:13 浏览: 116
好的,下面是一个简单的线性回归分类器的代码实现:
```python
import torch
import torch.nn as nn
import torch.optim as optim
# 定义线性回归模型
class LinearRegression(nn.Module):
def __init__(self, input_dim, output_dim):
super(LinearRegression, self).__init__()
self.linear = nn.Linear(input_dim, output_dim)
def forward(self, x):
out = self.linear(x)
return out
# 定义损失函数和优化器
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
# 定义训练数据和标签
x_train = torch.tensor([[1.0], [2.0], [3.0], [4.0]])
y_train = torch.tensor([[2.0], [4.0], [6.0], [8.0]])
# 定义模型和训练
model = LinearRegression(1, 1)
for epoch in range(1000):
# 前向传播
y_pred = model(x_train)
# 计算损失
loss = criterion(y_pred, y_train)
# 反向传播和优化
optimizer.zero_grad()
loss.backward()
optimizer.step()
if (epoch + 1) % 100 == 0:
print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, 1000, loss.item()))
# 测试模型
x_test = torch.tensor([[5.0], [6.0], [7.0]])
y_test = model(x_test)
print('预测结果为:', y_test)
```
在这个例子中,我们使用了 PyTorch 中的 nn.Module 类来定义了一个简单的线性回归模型。然后,我们定义了损失函数和优化器,并用训练数据和标签训练模型。在训练过程中,我们首先进行前向传播,然后计算损失,并使用反向传播和优化器来更新模型参数。最后,我们用测试数据进行模型测试,得出了预测结果。
阅读全文