enhanced CNN so that the feature kernels can be rectangular, not just box

before filters = [n1, n2]
would give the convolutional kernel size for the first layer (n1)
and third layer (n2).

Now, n1 can be a tuple/list (n1x, n1y) for a rectangular kernel
similarly for n2