Pytorch之反向传播求导原理

本文介绍了反向传播算法如何通过链式法则在计算图中求解每一层的偏导数,特别提到加法和乘法节点的处理方式。在PyTorch中,autograd模块自动处理梯度计算,但只有设置`requires_grad=True`的变量在反向传播时才会计算梯度。叶结点会收到梯度值,而非叶结点即使`requires_grad=True`也不会。推荐了两篇关于PyTorch自动求导和计算图理解的博客文章。
摘要由CSDN通过智能技术生成

对于传统的求偏导呢,是根据输出y对输出x做复杂的数值微分得来的。

反向传播算法则是在计算图中基于链式法则将每一层的偏导结果连接起来。对于每一层的偏导则可以通过数值微分求解,特殊一点的,对于加法节点,可以做微分不变处理,对于乘法节点,可以做翻转处理来简化数值微分的计算量。

关于pytorch中autugrad反向传播的机理,我推荐下网上某个博主写的,详细易懂https://blog.csdn.net/wangweiwells/article/details/101174330

关于反向传播其余的一些知识点,可参考这篇博主写的:pytorch 自动求导机制和计算图

小结:

1、只有变量的required_grad=True的时候反向传播的时候才会计算出梯度。但不一定会传给这个变量。

2、这时候要看是否为叶结点,叶张量才会收到这个梯度,非叶结点就算required_grad=True,也不会收到这个梯度值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值