首页 > 解决方案 > 有没有办法确定 NDArray 是否可训练?

问题描述

有没有办法确定NDArray变量是否具有渐变/需要反向传播,类似于requires_grad中的属性?

我试过检查是否x.gradis None,但这不适用于中间变量:

import mxnet as mx

x = mx.nd.array([1, 2])
x.attach_grad()
with mx.autograd.record():
  y = x**2
  z = 2 * y
z.backward()

>>> print(x.grad)
[4. 8.]
<NDArray 2 @cpu(0)>
>>> print(y.grad)
None

在这个例子中,x有一个梯度,但中间变量y没有,但它也应该是可训练的。

我已经尝试过查看源代码,但无法弄清楚。

标签: pythondeep-learningpytorchmxnet

解决方案


推荐阅读