Pytorch之requires_grad——转载

requires_grad是Pytorch中通用数据结构Tensor的一个属性,用于说明当前量是否需要在计算中保留对应的梯度信息,以线性回归为例,容易知道权重w和偏差b为需要训练的对象,为了得到最合适的参数值,我们需要设置一个相关的损失函数,根据梯度回传的思路进行训练。


官方文档中的说明如下

If there’s a single input to an operation that requires gradient, its output will also require gradient.
1
只要某一个输入需要相关梯度值,则输出也需要保存相关梯度信息,这样就保证了这个输入的梯度回传。
而反之,若所有的输入都不需要保存梯度,那么输出的requires_grad会自动设置为False。既然没有了相关的梯度值,自然进行反向传播时会将这部分子图从计算中剔除。

对于那些要求梯度的tensor,PyTorch会存储他们相关梯度信息和产生他们的操作,这产生额外内存消耗,为了优化内存使用,默认产生的tensor是不需要梯度的。
而我们在使用神经网络时,这些全连接层卷积层等结构的参数都是默认需要梯度的
————————————————
版权声明:本文为CSDN博主「 Zed」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44696221/article/details/104269981

posted @ 2021-12-18 15:25  编程coding小白  阅读(323)  评论(0编辑  收藏  举报