def convolution_network():

data = mx.sym.Variable('data')

conv1 = mx.sym.Convolution(data=data, kernel=(10, 10), stride=(2,2), num_filter=8)

bn1 = mx.sym.BatchNorm(data=conv1, fix_gamma=False, eps=2e-5, momentum=0.9, name="bn1")

tanh1 = mx.sym.Activation(data=bn1, act_type="relu")

conv2 = mx.sym.Convolution(data=tanh1, kernel=(10, 10), stride=(2,2), num_filter=8)

bn2 = mx.sym.BatchNorm(data=conv2, fix_gamma=False, eps=2e-5, momentum=0.9, name="bn2")

tanh2 = mx.sym.Activation(data=bn2, act_type="relu")

flatten = mx.sym.Flatten(data=tanh2)

fc1 = mx.sym.FullyConnected(data=flatten, num_hidden=100)

tanh3 = mx.sym.Activation(data=fc1, act_type="relu")

fc2 = mx.sym.FullyConnected(data=tanh3, num_hidden=3)

return mx.sym.SoftmaxOutput(data=fc2, name='softmax')