1.BP算法和(SGD)优化算法的关系:
bp算法就是通过误差反过来修正权值矩阵,而修正过程就是用的梯度下降法,这个修正过程用到的算法也就是优化算法。
求导只是求出loss function和对应权重的偏导数,得到偏导数以后可以根据不同的优化策略选择优化的方向,比如SGD,Momentum或者AdaGrad优化器。
所有梯度的偏导就是对应着梯度。
注:优化器和损失函数不是一个性质。例如损失函数torch.nn.CrossEntryloss(交叉熵损失),torch.optim.Adam优化器。
2.pytorch框架中对类中的forward()函数的理解
当执行y=model(x)的时候,底层自动调用forward方法计算结果,所以只需要以下步骤可以简单调用对象的方法:
①model = LeNet()
②y = model(x)
3.pyrorch中反向传播更新参数
以下三句话一句也不能少: (这里的optimizer是之前定义好的优化器。例如:torch.optim.Adam)
①将上次迭代计算的梯度值清0
optimizer.zero_grad()
②反向传播,计算梯度值
loss.backward()
③更新权值参数
optimizer.step()