05-用pytorch实现线性回归

回归

  • 线性模型

y^=x×w\hat y = x \times w
  • 损失函数

loss=(y^y)2=(xwy)2loss = (\hat y -y)^2 =(x\cdot w - y)^2
image-20210129163810184

训练步骤:

image-20210202210522318

数据

PyTorch中,计算图是小批量的,所以$X$和$Y$是$3 \times 1$张量。

[ypred(1)ypred(2)ypred(3)]=w[x(1)x(2)x(3)]+b\begin{align} \left[\begin{matrix} y^{(1)}_{pred} \\ y^{(2)}_{pred} \\ y^{(3)}_{pred} \\ \end{matrix}\right] = w \cdot \left[\begin{matrix} x^{(1)} \\ x^{(2)} \\ x^{(3)} \\ \end{matrix}\right] + b \end{align}

image-20210202211414029

设计模型

在以前的学习中,重点是求导数,现在学习pytorch后,重点是如何构造计算图

首先我们的模型类应该继承自nn.Module,它是所有神经网络模块的基类。

然后必须实现成员方法__init__()forward()

构造nn.Linear对象,类nn.Linear包含了权重$w$和偏置$b$。

image-20210202214515239

类神经网络。Linear实现了神奇的__call__()方法,使类的实例可以像函数一样被调用,且通常会调用forward()

损失函数和优化器

  • 损失函数

image-20210202220726331
image-20210202221212780

前馈与反馈

注意:由于.backward()计算的级将被累积。所以在使用backward之前,请记住将grad设置为0 !

  • 输出权重与偏置

  • 测试数据

image-20210208221314294

最后更新于

这有帮助吗?