pytorch 多元线性回归
时间: 2024-04-03 07:29:57 浏览: 115
基于pytorch的多元线性回归模型.zip
5星 · 资源好评率100%
在PyTorch中实现多元线性回归可以通过定义一个模型和使用梯度下降算法来训练模型。下面是一个示例代码来演示如何使用PyTorch进行多元线性回归:
```python
import torch
import torch.nn as nn
import torch.optim as optim
# 定义数据集
x_train = torch.tensor([[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0],
[7.0, 8.0, 9.0],
[10.0, 11.0, 12.0]])
y_train = torch.tensor([[3.0],
[6.0],
[9.0],
[12.0]])
# 定义模型
class LinearRegression(nn.Module):
def __init__(self, input_size, output_size):
super(LinearRegression, self).__init__()
self.linear = nn.Linear(input_size, output_size)
def forward(self, x):
return self.linear(x)
model = LinearRegression(3, 1)
# 定义损失函数和优化器
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
# 训练模型
num_epochs = 1000
for epoch in range(num_epochs):
# 前向传播
outputs = model(x_train)
loss = criterion(outputs, y_train)
# 反向传播和优化
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 打印训练信息
if (epoch+1) % 100 == 0:
print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, num_epochs, loss.item()))
# 使用训练好的模型进行预测
x_test = torch.tensor([[2.0, 3.0, 4.0]])
predicted = model(x_test)
print('Predicted value: {:.2f}'.format(predicted.item()))
```
这段代码首先定义了一个包含3个特征变量和1个输出变量的数据集。然后定义了一个继承自`nn.Module`的线性回归模型,并使用均方误差损失函数和随机梯度下降优化器。接下来,通过迭代训练模型,每100个epoch打印一次训练信息。最后,使用训练好的模型对一个测试样本进行预测,并输出预测结果。
阅读全文