课程26
这里有两个w 那么在反向传播的时候就需要分别对这两个求导,对第一个w求导的时候就相当于式子有两个变量,就相当于z=f(x,y),分别对x,y求导一样
就按照上面的公式就行求导,就是链式求导法则
这是从后面往前面求的,所以是反向传播,里面都是正向传播的已知值,就可以进行计算了
课程27
用torch进行简单的求导计算
这里是对x求导,里面的y不设置TRUE也行,但是对x求导一次之后,就不能再对y求导,需要再次求导一次
编写代码实现以下功能,各层之间的激活函数自己定义
确定数据
输入输出数据
这里面乘以100是为了让数据更大,让损失函数看着更加明显
定义神经网络的架构
实例化神经网络
定义损失函数
以上还没有涉及到我们的反向传播
通过上面这个代码查看网络的权重
通过上面的这一行代码进行反向传播
此时就会有梯度的值了,这样我们就构建了一个简单的正方向传播,但是为什么不定义grad = true呢?
x,y不需要进行反向传播,通过叶子结点判断是否进行反向传播,在这里面就是x,y和两个w,叶子结点就是左边再也没有连接的东西了,这里的x,y不需要反向传播,所以就不设置,设置了就会增加计算量