''' body.py contains utitlity functions and classes to build neural networks. Contains the following: 1) MLP 2) CNN 3) VAE ''' import os import torch import torch.nn as nn from torch.nn import functional as F from torchvision import transforms from Algorithms.utils import layer_init from pl_bolts.models.autoencoders.components import resnet18_encoder from collections import OrderedDict def mlp(sizes, activation, output_activation=nn.Identity): ''' Create a multi-layer perceptron model from input sizes and activations Args: sizes (list): list of number of neurons in each layer of MLP activation (nn.modules.activation): Activation function for each layer of MLP output_activation (nn.modules.activation): Activation function for the output of the last layer Return: nn.Sequential module for the MLP ''' layers = [] for j in range(len(sizes)-1): act = activation if j