torch.autograd.Function.backward¶
- static Function.backward(ctx, *grad_outputs)[源码]¶
定义使用反向模式自动微分计算操作微分的公式。
此函数必须由所有子类覆盖。(定义此函数等同于定义
vjp
函数。)它必须接受一个上下文
ctx
作为第一个参数,其后是与forward()
返回的输出数量相等的参数(对于 forward 函数的非张量输出,将传递 None),并且它应该返回与forward()
输入数量相等的张量。每个参数是相对于给定输出的梯度,并且每个返回值应该是相对于相应输入的梯度。如果输入不是张量或是不需要梯度的张量,您可以直接传递 None 作为该输入的梯度。上下文可用于检索在 forward 传递期间保存的张量。它还有一个属性
ctx.needs_input_grad
,它是一个布尔值元组,表示每个输入是否需要梯度。例如,如果forward()
的第一个输入相对于输出需要计算梯度,则backward()
将具有ctx.needs_input_grad[0] = True
。- 返回类型