def reset(self, params, repetition):
    """Called at the beginning of each experiment and each repetition"""

    pprint.pprint(params)

    self.initialize(params, repetition)

    # Load CIFAR dataset
    dataDir = params.get('dataDir', 'data')
    self.transform_train = transforms.Compose([
      transforms.RandomCrop(32, padding=4),
      transforms.RandomHorizontalFlip(),
      transforms.ToTensor(),
      transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),
    ])
    self.trainset = datasets.CIFAR10(root=dataDir, train=True, download=True,
                                transform=self.transform_train)

    self.createModel(params, repetition)

    print("Torch reports", torch.cuda.device_count(), "GPUs available")
    if torch.cuda.device_count() > 1:
      self.model = torch.nn.DataParallel(self.model)

    self.model.to(self.device)

    self.optimizer = self.createOptimizer(self.model)
    self.lr_scheduler = self.createLearningRateScheduler(self.optimizer)
    self.test_loaders = self.createTestLoaders(self.noise_values)
Called at the beginning of each experiment and each repetition