評價此頁

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