多维线性回归pytorch
时间: 2023-10-18 18:26:17 浏览: 98
多维线性回归是指在有多个自变量的情况下,使用线性模型来拟合数据。在PyTorch中,我们可以使用神经网络来实现多维线性回归。
首先,我们需要导入必要的库和模块:
```python
import torch
import torch.nn as nn
import torch.optim as optim
```
接下来,我们定义一个多维线性回归模型。模型将输入的自变量进行线性变换,并输出预测值。
```python
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):
out = self.linear(x)
return out
```
然后,我们定义训练函数,用于训练模型。
```python
def train(model, inputs, labels, num_epochs, learning_rate):
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=learning_rate)
for epoch in range(num_epochs):
inputs = torch.Tensor(inputs)
labels = torch.Tensor(labels)
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
if (epoch+1) % 100 == 0:
print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, num_epochs, loss.item()))
```
最后,我们可以使用定义好的模型和训练函数进行训练和预测。
```python
# 训练数据
inputs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
labels = [3, 6, 9]
# 创建模型
model = LinearRegression(input_size=3, output_size=1)
# 训练模型
train(model, inputs, labels, num_epochs=1000, learning_rate=0.001)
# 预测数据
test_input = torch.Tensor([[2, 3, 4]])
predicted_output = model(test_input)
print('Predicted Output:', predicted_output.item())
```
以上代码演示了如何使用PyTorch实现多维线性回归。希望能对你有所帮助!
阅读全文