Shortcuts

双层

class torch.autograd.forward_ad.dual_level[源代码]

用于前向自动微分的上下文管理器,所有前向自动微分计算必须在 dual_level 上下文中进行。

注意

The dual_level context 适当地进入和退出双层以控制当前的前向AD层,这是此API中其他函数默认使用的。

我们目前不计划支持嵌套的 dual_level 上下文,因此仅支持单个前向自动微分级别。要计算更高阶的前向梯度,可以使用 torch.func.jvp()

示例:

>>> x = torch.tensor([1])
>>> x_t = torch.tensor([1])
>>> with dual_level():
...     inp = make_dual(x, x_t)
...     # 使用inp进行计算
...     out = your_fn(inp)
...     _, grad = unpack_dual(out)
>>> grad is None
False
>>> # 退出层级后,梯度被删除
>>> _, grad_after = unpack_dual(out)
>>> grad is None
True

请参阅前向模式自动微分教程 以了解如何使用此API的详细步骤。

优云智算