前言:上一次我们学习了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