评价此页

torch.autograd.Function.backward#

static Function.backward(ctx, *grad_outputs)[source]#

定义使用反向模式自动微分来区分操作的公式。

此函数应被所有子类重写。(定义此函数等同于定义 vjp 函数。)

它必须接受一个上下文 ctx 作为第一个参数,然后是 forward() 返回的输出数量(对于 forward 函数的非 tensor 输出,将传入 None),并且它应该返回与 forward() 输入数量相同的 tensor。每个参数是相对于给定输出的梯度,每个返回值应是相对于相应输入的梯度。如果输入不是 Tensor 或是一个不需要梯度的 Tensor,你可以为该输入传递 None 作为梯度。

上下文可用于检索在 forward 过程中保存的 tensor。它还有一个属性 ctx.needs_input_grad,它是一个布尔元组,表示每个输入是否需要梯度。例如,如果 forward() 的第一个输入需要计算相对于输出的梯度,则 backward() 将具有 ctx.needs_input_grad[0] = True

返回类型

任何