torch.autograd.forward_ad.make_dual¶
- torch.autograd.forward_ad.make_dual(tensor, tangent, *, level=None)[來源][來源]¶
將張量值與其正切相關聯,以建立用於正向 AD 梯度計算的「對偶張量」。
結果會是一個新的 tensor,它會別名到
tensor
,並且如果tangent
具有相同的儲存佈局,則會將其以屬性形式原封不動地嵌入,否則會複製它。可以使用unpack_dual()
來恢復 tangent 屬性。這個函數是反向可微分的。
給定一個函數 f,其 Jacobian 矩陣為 J,它允許計算 J 和給定向量 v 之間的 Jacobian-向量乘積 (jvp),如下所示。
範例
>>> with dual_level(): ... inp = make_dual(x, v) ... out = f(inp) ... y, jvp = unpack_dual(out)
請參閱前向模式 AD 教學,以了解如何使用此 API 的詳細步驟。