自动求导

In [1]:
from mxnet import autograd, np, npx  
npx.set_np()

x = np.arange(4)
x
Out[1]:
array([0., 1., 2., 3.])

创建空间用来储存关于 x 的导数。

In [2]:
x.attach_grad()

使用 record 来记录计算。

In [3]:
with autograd.record():
    y = 2.0 * np.dot(x, x)
y
Out[3]:
array(28.)

函数 $y = 2\mathbf{x}^{\top}\mathbf{x}$ 关于 $\mathbf{x}$ 的导数应该是 $4\mathbf{x}$。

In [4]:
y.backward()
x.grad - 4 * x
Out[4]:
array([0., 0., 0., 0.])