0

mxnet 1.6.0 core dumps when I try the following program

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...


terminate called after throwing an instance of 'dmlc::Error' what(): [14:42:13] src/imperative/./imperative_utils.h:146: Operator _npi_multiply_scalar inferring shapes failed. input shapes: None output shapes: None operator attributes: scalar : 2.0

Stack trace: [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<mxnet::NDArray*, std::allocatormxnet::NDArray* > const&, std::vector<mxnet::NDArray*, std::allocatormxnet::NDArray* > const&, mxnet::DispatchMode*)+0x363b) [0x7f90ee1cb3bb]


Please help

1 Answers1

0

I referred the https://github.com/apache/incubator-mxnet/issues/15766 site and got the answer We have to use mxnet numpy. Added the line mxnet.npx.set_np()

So, I changed the code to :

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)

and it works fine