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 教程。