课程28
之前进行了前向反向的传播,但是还没有实现坐标点的移动,这节就是讲这个
这里的步长设置的大是因为演示,为了能看出来变化
这个得到的不是tensor本身,还包括其他的一些说明
这样可以取 出来,只剩下tensor
这样就定义了梯度dw和w
运行之后w就进行了迭代
每进行一次迭代之后,权重就会发生变化,那么正向传播的w数值就会发生变化,所以需要重新进行一次正向传播,如此迭代来更新w的值
动量Momentum
上面的式子就是第二步的真实方向,下面的就是让w按照这个方向进行移动
代码实现:
定义v的初始值,大小与dw一致
运行以上两段代码就可以进行迭代了
可以用模块进行实现
SGD:随机梯度下降
模型构建的一个基本流程:
梯度下降的一个基本流程:
ps:在计算交叉熵损失函数的时候,内置的损失函数的函数会自带softmax,所以在构建网络的时候不需要在写softmax层(大概是这样,不一定准确)
完整的梯度下降的一个流程
课程29
batch_size和epochs
for循环在python里比较慢,所以要小批量随机梯度下降节省时间
使用epochs进行迭代
有关数据
我们获取到的数据并不是pytorch可以处理的数据,需要进行处理成pytorch可以处理的数据
将数据的标签和特征整合到一起去,第一个维度要一样才能整合到一起去
数据集划分成小批量:Dataloader
这里面的i[0]对应的就是特征张量,i[1]对应的应该就是标签吧
查看样本
查看第一个样本的特征张量,后面改成1就是查看第一个样本的标签了