第三章 线性神经网络![w=[2,-3,4]^{T}](https://latex.csdn.net/eq?w%3D%5B2%2C-3%2C4%5D%5E%7BT%7D)
3.2 线性回归的从零实现
在了解线性回归的关键思想之后,我们可以开始通过代码动手实现线性回归。在此节中,将从零开始实现整个方法,包括数据流水线、模型、损失函数和小批量随机梯度下降优化器。虽然现代的深度学习框架几乎可以自动化地进行所有这些工作,但从零开始实现可以确保我们真正知道自己在做什么。同时,了解更细致的工作原理将方便我们自定义模型、自定义层或自定义损失函数。在这一节中,我们将只使用张量和自动求导。在之后的章节中,我们会充分利用深度学习框架的优势,介绍更简洁的实现方法。
%matplotlib inline import random import torch from d2l import torch as d2l
3.2.1 生成数据集
为了简单起见,我们将根据带有噪声的线性模型构造一个人造数据集。我们的任务是使用这个有限样本的数据集来恢复这个模型的参数。我们将使用低维数据,这样就可以很容易地将其可视化。在下面的代码中,我们生成一个包含1000个样本的数据集,每个样本包含从标准正态分布中采样的2个特征。我们的合成数据集是一个矩阵X。
我们使用线性模型参数、b=4.2和噪声项生成数据集及其标签:
其中