【问题标题】:mxnet core dumps when trying a simple program尝试简单程序时 mxnet 核心转储
【发布时间】:2020-07-15 07:40:29
【问题描述】:

当我尝试以下程序时,mxnet 1.6.0 核心转储

from mxnet import np, autograd
x = np.arange(4.0)
x.attach_grad()
print(x.grad)

with autograd.record():
    y = 2 * np.dot(x, x)
print("y = ", y)
y.backward()

print("x.grad ", x.grad)

mxnet coredumps at autograd.record(): line...


在抛出 'dmlc::Error' 实例后调用终止 what(): [14:42:13] src/imperative/./imperative_utils.h:146: 运算符 _npi_multiply_scalar 推断形状失败。 输入形状: 没有任何 输出形状: 没有任何 运营商属性: 标量:2.0

堆栈跟踪: [bt] (0) /home/nisar/anaconda3/lib/python3.7/site-packages/mxnet/libmxnet.so(+0x307d3b) [0x7f90eb02fd3b] [bt] (1) /home/nisar/anaconda3/lib/python3.7/site-packages/mxnet/libmxnet.so(mxnet::imperative::SetShapeType(mxnet::Context const&, nnvm::NodeAttrs const&, std ::vector<:ndarray std::allocatormxnet::ndarray> const&, std::vector<:ndarray std::allocatormxnet::ndarray> const&, mxnet::DispatchMode*)+ 0x363b) [0x7f90ee1cb3bb]


请帮忙

【问题讨论】:

  • 请提供更多调试信息(例如错误消息)
  • 感谢 Jan 的回复。我刚开始使用 mxnet,我们需要使用 mxnet numpy。详情请看答案。

标签: python mxnet autograd


【解决方案1】:

我参考了https://github.com/apache/incubator-mxnet/issues/15766 网站并得到了答案 我们必须使用 mxnet numpy。添加行 mxnet.npx.set_np()

所以,我将代码更改为:

from mxnet import np, autograd
mxnet.npx.set_np()
x = np.arange(4.0)
x.attach_grad()
print(x.grad)

with autograd.record():
    y = 2 * np.dot(x, x)
print("y = ", y)
y.backward()

print("x.grad ", x.grad)

#print("x.grad == 4 * x : ", x.grad == 4 * x)
with autograd.record():
    y = x.sum()
y.backward()
print("x.grad = ", x.grad)

效果很好

【讨论】:

    猜你喜欢
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 2020-04-21
    • 1970-01-01
    相关资源
    最近更新 更多