文章目录
`
一、Pytorch实现线性模型
准备数据:
广播机制:
这两个矩阵是不能直接做加法的,所以需要做广播即对[1 2 3]进行扩充。
求出loss后,一般会求和或者均值得到loss的标量值。
pytorch输入的数据是tensor类型。
这里关于函数的参数的一些补充知识:
def fuc(*args,**kwargs):
print(args)
print(kwargs)
fuc(1,2,3,4,x=3,y=4)
(1, 2, 3, 4)
{‘x’: 3, ‘y’: 4}
可以看到args输出的是元组,而kwargs输出的是字典。
- 在pytorch的__call__语句里面有一个重要的就是forward()。
- Module实现了魔法函数__call__(),call()里面有一条语句是要调用forward()。因此新写的类中需要重写forward()覆盖掉父类中的forward()。
- 所以我们在自己的moudle里面必须是实现forward。
loss:
可以去看Pytorch官网查看MSEloss具体现在参数使用,跟上述有所不同。
优化器:
优化器不会构建计算图。
第一个参数:params代表的是权重。
优化器可以对模型里面的所有权重进行更新,上述的模型包括w和b。
最终完整的过程:
二、练习代码
import torch
from torch import nn
import matplotlib.pyplot as plt
x_data = torch.tensor([[1.0],[2.0],[3.0]])
y_data = torch.tensor([[2.0],[4.0],[6.0]])
class Linear(nn.Mo