#pt#课堂笔记_5_pt实现线性回归

1)第一步准备数据集,第二步设计模型,第三步构造损失和优化器,第四步写训练的周期,前馈(损失)反馈(反馈算梯度)更新(用梯度下降算法更新权重)

#pt#课堂笔记_5_pt实现线性回归

2)使用mini-batch风格,使用y_hat = wx+b,minibatch就是一次把三个样本的结果都求 出来。

广播就是把[1,2,3]T,扩充。扩充完了才能运算。下图的w会被广播为3行3列的矩阵(此处相乘为矩阵对应元素相乘,非矩阵乘),b也是3行3列。

 

 #pt#课堂笔记_5_pt实现线性回归

 

 3)损失,乘方是按照元素来计算的。

#pt#课堂笔记_5_pt实现线性回归

 

 4)

如果loss最后是向量,无法进行backward,loss得是一维张量

 5)

样本数相等,特征数可以不相等,行表示样本数,列表示特征数#pt#课堂笔记_5_pt实现线性回归

 

 

这边要做转置

 

6)

#pt#课堂笔记_5_pt实现线性回归

 

 

self.linear(x)这边表示可调用的对象

__call__(*args) 此处*args表示可有可无的参数,不确定有多少个,可变参数

**两个星号表示词典

 7)#pt#课堂笔记_5_pt实现线性回归#pt#课堂笔记_5_pt实现线性回归

 

 此处的model是可调用的。

8) #pt#课堂笔记_5_pt实现线性回归

 

优化器中的SGD

9)训练过程

#pt#课堂笔记_5_pt实现线性回归

 

 

打印的时候会自动调用__str__();

梯度归零 

optimizer.step()会根据设计的学习率、梯度来自动进行更新。

 #pt#课堂笔记_5_pt实现线性回归

 

 9)

#pt#课堂笔记_5_pt实现线性回归#pt#课堂笔记_5_pt实现线性回归

 

 model下的linear,linear下的权重进行调用。不加item前是矩阵,加了item就是一个数。

训练集的损失会不断减小,

但是测试集可能会减小后上升,可能会过拟合。

 

 

 

#pt#课堂笔记_5_pt实现线性回归

 

 

 

-补充知识

1.标量、张量

标量是一个数,张量是坐标间的关系是n*n的

上一篇:mysql之慢sql与pt-query-digest


下一篇:pytorch 之 保存不同形式的预训练模型