Hi,
I want to build a network based on NHWC layout, however I run into some trouble. Coming from a quite complex scenario I figured that at least one simple case doesn’t t really work as expected:
This is my code:
import mxnet
print(mxnet.__version__)
ctx = mxnet.gpu()
print('Current context: {}' .format(ctx))
test_data = mxnet.ndarray.random.randn(1,10,10,1, ctx=ctx)
print('Test Data Shape: {}'.format(test_data.shape))
nhwc = mxnet.gluon.nn.Conv2D(1,(3,3), layout='NHWC')
nhwc.initialize(ctx=ctx)
res2 = nhwc(test_data)
print("Conv2d result mean(): {}".format(res2.mean().asscalar()))
If I run that on GPU everything works quite like expected:
1.5.0
Current context: gpu(0)
Test Data Shape: (1, 10, 10, 1)
Conv2d result mean(): -0.014221698977053165
while if i set the context to cpu, i get the following error message:
1.5.0
Current context: cpu(0)
Test Data Shape: (1, 10, 10, 1)
Traceback (most recent call last):
File "C:/Users/schoenfs/Projekte/IA_ML/aiml_street_lighting/gluon_faster_rcnn/nhcw.py", line 12, in <module>
print("Conv2d result mean(): {}".format(res2.mean().asscalar()))
File "C:\Users\schoenfs\Envs\streetlight\lib\site-packages\mxnet\ndarray\ndarray.py", line 2014, in asscalar
return self.asnumpy()[0]
File "C:\Users\schoenfs\Envs\streetlight\lib\site-packages\mxnet\ndarray\ndarray.py", line 1996, in asnumpy
ctypes.c_size_t(data.size)))
File "C:\Users\schoenfs\Envs\streetlight\lib\site-packages\mxnet\base.py", line 253, in check_call
raise MXNetError(py_str(_LIB.MXGetLastError()))
mxnet.base.MXNetError: [18:13:35] c:\jenkins\workspace\mxnet-tag\mxnet\src\operator\nn\./convolution-inl.h:169: Check failed: param_.layout.value() == mshadow::kNCW || param_.layout.value() == mshadow::kNCHW || param_.layout.value() == mshadow::kNCDHW: Only support NCW, NCHW and NCDHW layout
would be great if someone shed some light on why this happens ?
Best Regards
spx