add a field batch_size to Learner.initialization