Torch 自动求导
一、链式求导法则
1.1 原理
标量链式法则:
y = f ( u ) , u = g ( x ) , ∂ y ∂ x = ∂ y ∂ u ∂ u ∂ x y=f(u),u=g(x),\frac{\partial y}{\partial x} =\frac{\partial y}{\partial u}\frac{\partial u}{\partial x} y=f(u),u=g(x),∂x∂y=∂u∂y∂x∂u
扩展到向量:
∂ y ∂ x ⃗ 1 × n = ∂ y ∂ u ∂ u ∂ x ⃗ m × n ∂ y ∂ x ⃗ 1 × n = ∂ y ∂ u ⃗ 1 × m ∂ u ⃗ ∂ x ⃗ m × n ∂ y ⃗ ∂ x ⃗ m × n = ∂ y ⃗ ∂ u ⃗ m × k ∂ u ⃗ ∂ x ⃗ k × n \begin{array}{l} \frac{\partial y}{\partial \vec{x}}_{1\times n} =\frac{\partial y}{\partial u}\frac{\partial u}{\partial \vec{x}} _{m\times n} \\ \frac{\partial y}{\partial \vec{x}}_{1\times n} =\frac{\partial y}{\partial \vec{u}} _{1\times m}\frac{\partial \vec{u}}{\partial \vec{x}} _{m\times n} \\ \frac{\partial \vec{y}}{\partial \vec{x}}_{m\times n} =\frac{\partial \vec{y}}{\partial \vec{u}} _{m\times k}\frac{\partial \vec{u}}{\partial \vec{x}} _{k\times n} \\ \end{array} ∂x∂y1×n=∂u∂y∂x∂um×n∂x∂y1×n=∂u∂y1×m∂x∂um×n