昇思25天学习打卡营第11天|初学入门-函数式自动微分
训练使用的反向传播算法:
模型预测值(logits)与正确标签(label)送入损失函数(loss function)获得loss,然后进行反向传播计算,求得梯度(gradients),最终更新至模型参数(parameters)
下面是大概得计算图:z=wx+b,然后z和y进入损失函数计算loss,这里的w和b为参数,有点像高中的线性回归,但是w是一个矩阵,里面的参数有很多。
梯度的获取:
- grad 是一个可以计算梯度的函数
- 元组(2,3)代表对函数funtion的第3、4个参数作为w和b进行求导
- 返回的梯度即使对w和b求导后的导数
- w的shape为(5,3)其中
5
是输入x
的特征数,3
是输出z
的特征数(即输出类别数)(input_size, output_size) - b的shape为(3,)),偏置值(output_size)
梯度的选取
- grad函数会对函数的所有返回值进行求导工作,所以,可以的function函数设置多个return值进行求导
- ops.stop_gradient(z)可以阻断梯度的传播,从而消除某个输出项对梯度的