头歌pytorch之线性回归
时间: 2024-10-18 08:06:07 浏览: 74
Pytorch模拟线性回归
头歌(PyTorch)是一个广泛使用的开源深度学习框架,主要用于构建和训练神经网络模型。在线性回归这个基础的机器学习任务中,PyTorch通过张量操作极其方便。线性回归的目标是最小化预测值与真实值之间的差距,通常表示为均方误差(MSE)。
在PyTorch中,你可以这样做:
```python
import torch
from torch import nn
# 创建数据集 (假设x_data是输入特征,y_data是目标标签)
x_data = torch.tensor([[0], [1], [2], [3], [4]])
y_data = torch.tensor([1, 2, 3, 4, 5])
# 定义线性回归模型
model = nn.Linear(in_features=1, out_features=1)
# 求模型参数并初始化
weights = model.weight.data
bias = model.bias.data
# 假设损失函数是MSE
loss_fn = nn.MSELoss()
# 训练循环
learning_rate = 0.01
for epoch in range(1000):
# 前向传播
y_pred = torch.dot(x_data, weights) + bias
loss = loss_fn(y_pred, y_data)
# 反向传播和优化
loss.backward()
with torch.no_grad():
weights -= learning_rate * weights.grad
bias -= learning_rate * bias.grad
# 清零梯度,防止累加
weights.grad.zero_()
bias.grad.zero_()
print(f"权重: {weights.item()}, 偏置: {bias.item()}")
```
在这个例子中,我们创建了一个简单的线性模型,并通过梯度下降法更新权重和偏置以最小化损失。
阅读全文