def __init__(self, x):
        self.data = [(el, 'none') for el in x]
        self.data.extend([(el, 'augm1') for el in x])
        self.data.extend([(el, 'augm2') for el in x])
        self.data.extend([(el, 'augm3') for el in x])
        self.transform1 = transforms.Compose([
                transforms.RandomResizedCrop(224),
                transforms.ToTensor(),
                transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
        ])
        self.transform2 = transforms.Compose([
                transforms.RandomHorizontalFlip(),
                transforms.ToTensor(),
                transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
        ])
        self.transform3 = transforms.Compose([
                transforms.RandomErasing(),
                transforms.ToTensor(),
                transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
        ])

and
if self.data[i][1] == 'augm1':
      # do self.transform1
if self.data[i][1] == 'augm2':
      # do self.transform2
if self.data[i][1] == 'augm3':
      # do self.transform3