深度学习之线性回归实现

本文详细介绍了线性回归的实现过程,包括数据生成、模型定义、损失函数和优化算法。通过PyTorch实现,展示了如何利用torch.matmul进行线性组合,添加噪声,以及如何使用随机梯度下降进行训练。此外,还讨论了数据加载和简洁的线性回归模型实现,利用nn.Linear和nn.Sequential构建模型,并使用MSELoss计算损失。整个过程帮助理解深度学习的基础和模型训练流程。
摘要由CSDN通过智能技术生成

线性回归有几个实现过程:

  1. 生成数据集

使用 torch.matmul 函数计算特征矩阵 X 与权重向量 w 之间的线性组合,并加上偏置项 b,得到目标变量 y。添加噪声:使用 torch.normal 函数生成形状与目标变量 y 相同的噪声,并将其加到目标变量中。最后,返回特征矩阵 X 和重塑后的目标变量 y,其中 y 的形状为 (-1, 1),保持列向量的形式。

def synthetic_data(w, b, num_examples):  #@save

    """生成 y = Xw + b + 噪声。"""

    X = torch.normal(0, 1, (num_examples, len(w)))  #最后一个参数指定X维度,len(w)特征个数

    y = torch.matmul(X, w) + b

    y += torch.normal(0, 0.01, y.shape)

    return X, y.reshape((-1, 1))

使用d2l库进行可视化生成第二个特征features[;,1]和labels的散点图观察两者的关系

d2l.set_figsize()

d2l.plt.scatter(features[:, (1)].detach().numpy(), labels.detach().numpy(), 1);

  1. 读取数据集

每次通过读取一批的样本来更新模型

def data_iter(batch_size, features, labels):

    num_examples = len(features)

  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值