torch.autograd.forward_ad.make_dual
- torch.autograd.forward_ad.make_dual(tensor, tangent, *, level=None)[源代码]
-
将张量值与其切线关联,形成“双重张量”,以进行正向自动微分的梯度计算。
结果是一个新的张量,与
tensor
同名。如果存储布局相同,则将tangent
作为属性原样嵌入;否则进行复制。tangent
属性可以通过unpack_dual()
恢复。此函数可以进行反向微分。
给定一个函数 f,其雅可比矩阵为 J,可以计算雅可比矩阵与向量的乘积(jvp),即在 J 和给定向量 v 之间的雅可比-向量积,如下所示。
示例:
>>> with dual_level(): ... inp = make_dual(x, v) ... out = f(inp) ... y, jvp = unpack_dual(out)
请参阅前向模式AD教程,以了解如何使用此API的详细步骤。