Let me show you what I mean:
class dataload(Dataset):

    def __init__(self, x, transform=None):
        self.data = [(el, 'none') for el in x]
        self.data.extend([(el, 'augm1') for el in x])
        self.transform = transform

    def __len__(self):
        return len(self.data)

    def __getitem__(self, i):

        img = Image.open(self.data[i][0])
        # img = img.transpose((2, 0, 1))
        # img = torch.from_numpy(img).float()
        tmp = np.int32(filenames[i].split('/')[-1].split('_')[0][1])
        label = np.zeros(67)
        label[tmp] = 1
        label = torch.from_numpy(label).float()
    
        if self.data[i][1] == 'augm1' and self.transform:
            img = self.transform(img)

        return img,label

This way self.data stores twice as much records: one with augm1 flag and will trigger augmentation, another won’t.