深度学习高维线性回归代码
时间: 2023-10-10 09:14:47 浏览: 123
在深度学习中,高维线性回归是指在回归分析中包括两个或两个以上的自变量,并且因变量和自变量之间是线性关系的情况。下面是一个实现高维线性回归的简单代码示例:
```python
import torch
from torch import nn
# 定义数据集
X = torch.randn(100, 5) # 输入特征
w_true = torch.tensor([[2.0], [-3.4], [1.5], [0.8], [5.2]]) # 真实权重
b_true = torch.tensor([4.2]) # 真实偏置
y = torch.matmul(X, w_true) + b_true + torch.randn(100, 1) * 0.1 # 加入噪声的线性关系
# 定义线性回归模型
class LinearRegression(nn.Module):
def __init__(self, num_features):
super().__init__()
self.linear = nn.Linear(num_features, 1)
def forward(self, x):
return self.linear(x)
# 初始化模型和损失函数
model = LinearRegression(5)
loss_fn = nn.MSELoss()
# 定义优化器
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
# 训练模型
num_epochs = 100
for epoch in range(num_epochs):
# 前向传播
y_pred = model(X)
loss = loss_fn(y_pred, y)
# 反向传播
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 打印训练信息
if (epoch+1) % 10 == 0:
print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')
# 输出模型的权重和偏置
print('预测的权重:', model.linear.weight)
print('预测的偏置:', model.linear.bias)
```
阅读全文