当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python mxnet.autograd.grad用法及代码示例


用法:

mxnet.autograd.grad(heads, variables, head_grads=None, retain_graph=None, create_graph=False, train_mode=True)

参数

  • heads(NDArray or list of NDArray) - 输出 NDArray(s)
  • variables(NDArray or list of NDArray) - 输入变量来计算梯度。
  • head_grads(NDArray or list of NDArray or None) - 相对于头部的梯度。
  • retain_graph(bool) - 是否保持计算图再次微分,而不是清除历史并释放内存。默认为与 create_graph 相同的值。
  • create_graph(bool) - 是否记录梯度图以计算高阶
  • train_mode(bool, optional) - 是否向后进行训练或预测。

返回

关于变量的梯度。

返回类型

NDArray 或 NDArray 列表

计算头部 w.r.t 变量的梯度。渐变将作为新的 NDArrays 返回,而不是存储到 variable.grad 中。支持记录梯度图以计算高阶梯度。

注意

目前只有非常有限的一组运算符支持高阶梯度。

例子

>>> x = mx.nd.ones((1,))
>>> x.attach_grad()
>>> with mx.autograd.record():
...     z = mx.nd.elemwise_add(mx.nd.exp(x), x)
>>> dx = mx.autograd.grad(z, [x], create_graph=True)
>>> print(dx)
[
[ 3.71828175]
<NDArray 1 @cpu(0)>]

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 mxnet.autograd.grad。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。