Pytorch(三)入门:线性回归

给定一个数据点集合 X X X和对应的目标值 y y y,线性模型的目标就是找到一条使用向量 w w w和位移 b b b描述的线,来尽可能地近似每个样本 X [ i ] X[i] X[i] y [ i ] y[i] y[i]。用数学符号来表示就是:
y ^ = X w + b \hat{y} = Xw + b y^=Xw+b
并最小化所有数据点上的平方误差
∑ i = 1 n ( y ^ i − y i ) 2 . \sum_{i=1}^n (\hat{y}_i-y_i)^2. i=1n(y^iyi)2.

接下来,一起来写一个线性回归模型,然后再通过 nn 包构建一个线性回归模型。

Pytorch(三)入门:线性回归_第1张图片
Pytorch(三)入门:线性回归_第2张图片
Pytorch(三)入门:线性回归_第3张图片
Pytorch(三)入门:线性回归_第4张图片

用torch.nn来构建模型

在PyTorch中 nn 包定义了一系列基本组件,这些组件(Modules)涵盖了大部分构建神经网络会使用的各种层。一个组件(Modules)的输入是Variable,经过组件之后,输出又是另一个 Variable。

当然nn包中还包含了大部分我们平时使用的损失函数。

最后torch.optim中还含有很多我们平时使用的优化算法,用来更新梯度。(我们上面使用的就是梯度下降法,只不过上面是我们自己手写,现在可以直接调用了)

刚才,我们使用的是Tensor和autograd来构建线性回归的模型,现在,我们来使用torch.nn来快速构建一个线性回归模型.
Pytorch(三)入门:线性回归_第5张图片
Pytorch(三)入门:线性回归_第6张图片

Pytorch(三)入门:线性回归_第7张图片

以上代码参考:https://github.com/LianHaiMiao/pytorch-lesson-zh/

你可能感兴趣的:(pytorch)