Pytorch线性回归编程测试题
时间: 2024-10-08 16:20:56 浏览: 27
PyTorch是一个广泛用于深度学习的开源框架,线性回归是机器学习中最基础的模型之一,在PyTorch中编写一个简单的线性回归示例可以帮助初学者理解神经网络的基本原理。下面是一个基本的线性回归任务的Python代码片段:
```python
import torch
from torch import nn
# 定义数据集,假设我们有一个一维输入和对应的标签
x_data = torch.randn(100, 1) # 输入特征
y_data = 2 + 3 * x_data + torch.randn(100, 1) # 真实线性关系生成的标签,加上随机噪声模拟实际场景
# 将数据转化为张量并拆分训练集和测试集
train_x, test_x = x_data[:80], x_data[80:]
train_y, test_y = y_data[:80], y_data[80:]
# 定义线性回归模型
class LinearRegression(nn.Module):
def __init__(self):
super(LinearRegression, self).__init__()
self.linear = nn.Linear(1, 1)
def forward(self, x):
return self.linear(x)
model = LinearRegression()
# 损失函数和优化器
criterion = nn.MSELoss() # 均方误差损失
optimizer = torch.optim.SGD(model.parameters(), lr=0.01) # 使用随机梯度下降法
# 训练循环
for epoch in range(500): # 遍历一定次数的迭代
optimizer.zero_grad() # 清零梯度
predictions = model(train_x) # 前向传播得到预测值
loss = criterion(predictions, train_y) # 计算损失
loss.backward() # 反向传播计算梯度
optimizer.step() # 更新模型参数
# 测试模型性能
test_predictions = model(test_x)
test_loss = criterion(test_predictions, test_y)
print(f"测试集均方误差:{test_loss.item()}")
```
阅读全文