class_docstr: Simple nn.Module to create a multi-layer perceptron
  with BatchNorm and ReLU activations.
  
  :param hidden_size: An array indicating the number of neurons in each layer.
  :type hidden_size: int[]
  :param last_activation: Indicates whether to add BatchNorm and ReLU
                          after the last layer.
  :type last_activation: Boolean
class_docstr_tok: ["Simple","nn.Module","to","create","a","multi-layer","perceptron","with","BatchNorm","and","ReLU","activations",".",":","param","hidden_size",":","An","array","indicating","the","number","of","neurons","in","each","layer",".",":","type","hidden_size",":","int","[","]",":","param","last_activation",":","Indicates","whether","to","add","BatchNorm","and","ReLU","after","the","last","layer",".",":","type","last_activation",":","Boolean"]
code: def forward(self, x):
      return self.mlp(x)
  
imports: from avalanche.benchmarks.utils import _make_taskaware_classification_dataset
  from avalanche.models.dynamic_modules import MultiTaskModule, DynamicModule
  import torch.nn
  from torch.nn.parallel import DistributedDataParallel
  from collections import OrderedDict
  from avalanche.benchmarks.scenarios import CLExperience
label_desc: Use image node_id 2 for calling the MLP obj's underlying member method code with example usage: obj.forward(x) and returns: self