I want to reproduce the following Pytorch behavior in MxNet Gluon (or simply in MxNet). What is the simplest snippet of code that does this?
(In particular, I want to center and normalize a batch of input data.)
PyTorch Code which produces following output.
tensor([-0.2708, -0.2600]) tensor([-0.0000, -0.0000])
import torch num_examples = 10 num_features = 2 _input = torch.randn(num_examples, num_features) print(_input.mean(dim=0)) m = torch.nn.BatchNorm1d(num_features, affine=False) _output = m(_input) print(_output.mean(dim=0))
MxNet Code (on a separate input) which produces following output.
[-0.06546137 -0.14399691] [-0.06546105 -0.14399621]
import mxnet as mx num_examples = 10 num_features = 2 _input = mx.nd.random_normal(shape=(num_examples, num_features)) print(_input.mean(axis=0)) bn = mx.gluon.nn.BatchNorm(center=True) bn.initialize() _output = bn.forward(_input) print(_output.mean(axis=0))