torch.autograd.forward_ad.make_dual¶
- torch.autograd.forward_ad.make_dual(tensor, tangent, *, level=None)[source][source]¶
将张量值与其切线关联以创建“双张量”,用于前向 AD 梯度计算。
结果是一个新的张量,如果具有相同的存储布局则别名
tensor
,否则复制。切线属性可以通过unpack_dual()
恢复。此函数是可反向求导的。
给定一个函数 f,其雅可比矩阵为 J,可以计算 J 与给定向量 v 之间的雅可比-向量积(jvp),如下所示。
示例:
>>> with dual_level(): ... inp = make_dual(x, v) ... out = f(inp) ... y, jvp = unpack_dual(out)
请参阅前向模式的 AD 教程,以获取如何使用此 API 的详细步骤。