评价此页

torch.autograd.forward_ad.make_dual#

torch.autograd.forward_ad.make_dual(tensor, tangent, *, level=None)[源代码]#

关联一个张量值与其切线,以创建一个“双张量”用于前向 AD 梯度计算。

结果是一个新的张量,它将 tensor 别名为 tangent,如果 tangent 具有相同的存储布局,则直接嵌入为属性,否则进行复制。可以通过 unpack_dual() 恢复切线属性。

此函数是反向可微的。

给定一个雅可比矩阵为 J 的函数 f,它可以让你如下计算 J 和给定向量 v 之间的雅可比向量乘积(jvp)。

示例

>>> with dual_level():
...     inp = make_dual(x, v)
...     out = f(inp)
...     y, jvp = unpack_dual(out)

有关如何使用此 API 的详细步骤,请参阅前向模式 AD 教程