python - 有没有办法确定 NDArray 是否可训练?
问题描述
有没有办法确定NDArray
变量是否具有渐变/需要反向传播,类似于pytorchrequires_grad
中的属性?
我试过检查是否x.grad
is 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
没有,但它也应该是可训练的。
我已经尝试过查看源代码,但无法弄清楚。
解决方案
推荐阅读
- r - R在绘图上编程以标记轴
- mongodb - Mongoose.populate() 不会在模型中产生任何变化
- python - Python Spark Dataframe:将字符串列转换为时间戳
- python - 在python中对两个或多个数字求和
- javascript - 如何从托管在不同环境中的文件中执行 Heroku 托管的 node.js 文件中的函数?
- android - Ionic 4:您需要使用不同的包名称,因为 Google Play 中已经存在“io.ionic.starter”
- jquery - 使用 query.serializeJSON 序列化表单数据
- testing - 如何在 Testcafe 上调整屏幕截图的浏览器窗口大小
- javascript - 如果我使用 ajax 向 dom 添加新元素,我如何使用 url 查询字符串来做同样的事情?
- http - 在互联网上,当服务器处于最大容量时,请求会发生什么