torch.autograd学习系列之torch.autograd.grad()函数学习

前言:上一次我们学习了torch.autograd.backward()方法,这是一个计算反向过程的核心方法,没看过的小伙伴可以去看看
传送门:https://blog.csdn.net/Li7819559/article/details/104725473

今天我们来学习torch.autogard.gard()函数:

函数的作用

作用:计算并返回outputs对inputs的梯度

参数列表

一共六个,分别是:outputs,inputs,gard_outputs,retain_graph,create_graph,allow_unused,我们接下来一一研究

1.outputs

这个是待被求导的tensor,作为第一个参数

2.inputs

这个是要被计算导数的叶子节点

3.grad_outputs

这个就是我们上次所讲解过的Jacobian-vector product中的向量,如果想查看详细信息 请前往开头的那个传送门0.0

4.retain_graph

这是一个布尔型参数,如果为真的话,forward过程所创建的计算图将不会被销毁,如果为False,调用完该函数,forward过程的计算图将会被销毁,再次调用该函数需要重新建立计算图,默认值根create_graph的值相同

5.create_graph

这是一个布尔型参数,如果为真的话,这个梯度将会加入到计算图中,用来计算高阶导数或者其他计算,默认值为False

6.allow_unused

这也是一个布尔型参数,如果为True,则只返回inputs的梯度,而不返回其他叶子节点的,默认为Flase

你可能感兴趣的:(python代码学习,pytorch代码学习)