mxnet.base.MXNetError: Error in operator conv0_fwd: Shape inconsistent, Provided = [64,64,3,3], inferred shape=(64,3,3,3)

from mxnet.gluon import nn

from mxnet import init

import mxnet as mx

net = nn.HybridSequential()

net.add(nn.Conv2D(channels=64, kernel_size=(3,3), in_channels=64, strides=(1,1), padding=(1,1)))

net.add(nn.Activation(‘relu’))

net.add(nn.MaxPool2D(pool_size=(2,2), strides=(2,2), padding=(0,0), ceil_mode=False))

net.add(nn.Conv2D(channels=128, kernel_size=(3,3), in_channels=64, strides=(1,1), padding=(1,1)))

net.add(nn.Activation(‘relu’))

net.add(nn.MaxPool2D(pool_size=(2,2), strides=(2,2), padding=(0,0), ceil_mode=False))

net.add(nn.Conv2D(channels=256, kernel_size=(3,3), in_channels=128, strides=(1,1), padding=(1,1)))

net.add(nn.Activation(‘relu’))

net.add(nn.Conv2D(channels=256, kernel_size=(3,3), in_channels=128, strides=(1,1), padding=(1,1)))

net.add(nn.Activation(‘relu’))

net.add(nn.MaxPool2D(pool_size=(2,2), strides=(2,2), padding=(0,0), ceil_mode=False))

net.add(nn.Conv2D(channels=512, kernel_size=(3,3), in_channels=512, strides=(1,1), padding=(1,1)))

net.add(nn.Activation(‘relu’))

net.add(nn.Conv2D(channels=512, kernel_size=(3,3), in_channels=512, strides=(1,1), padding=(1,1)))

net.add(nn.Activation(‘relu’))

net.add(nn.MaxPool2D(pool_size=(2,2), strides=(2,2), padding=(0,0), ceil_mode=False))

net.add(nn.Conv2D(channels=512, kernel_size=(3,3), in_channels=512, strides=(1,1), padding=(1,1)))

net.add(nn.Activation(‘relu’))

net.add(nn.Conv2D(channels=512, kernel_size=(3,3), in_channels=512, strides=(1,1), padding=(1,1)))

net.add(nn.Activation(‘relu’))

net.add(nn.MaxPool2D(pool_size=(2,2), strides=(2,2), padding=(0,0), ceil_mode=False))

net.add(nn.Dense(4096,in_units=25088, activation=“relu”))

net.add(nn.Dropout(rate = 0.5))

net.add(nn.Dense(4096,in_units=4096, activation=“relu”))

net.add(nn.Dropout(rate = 0.5))

net.add(nn.Dense(10,in_units=4096))

net.hybridize()

net.initialize(init=init.Xavier())

net(mx.nd.ones((1,3,224,224)))

The last line gives the error

net(a)
Traceback (most recent call last):
File “”, line 1, in
File “/home/kaivalya/try/env_try1/lib/python3.5/site-packages/mxnet/gluon/block.py”, line 540, in call
out = self.forward(*args)
File “/home/kaivalya/try/env_try1/lib/python3.5/site-packages/mxnet/gluon/block.py”, line 907, in forward
return self._call_cached_op(x, *args)
File “/home/kaivalya/try/env_try1/lib/python3.5/site-packages/mxnet/gluon/block.py”, line 813, in _call_cached_op
out = self._cached_op(*cargs)
File “/home/kaivalya/try/env_try1/lib/python3.5/site-packages/mxnet/_ctypes/ndarray.py”, line 150, in call
ctypes.byref(out_stypes)))
File “/home/kaivalya/try/env_try1/lib/python3.5/site-packages/mxnet/base.py”, line 252, in check_call
raise MXNetError(py_str(_LIB.MXGetLastError()))
mxnet.base.MXNetError: Error in operator conv0_fwd: Shape inconsistent, Provided = [64,64,3,3], inferred shape=(64,3,3,3)
I am new to mxnet
Am I missing something. Can someone help ?

Hi.

I haven’t tried this, but as you are passing a 3-channel RGB image as input, should the in_channels of your first layer not be 3 instead of 64?

Lieven

Yeah you are right.
My bad