I was under the impression that once you initialize your dataloader on your dataset, the dataset and images inside the dataloader have effectively locked until you reinitialize the dataloader again.
I see what you are saying, but I am not sure how preforming the random and different transforms per epoch
What would be a proper way to reformat this code so that I have different transformations per epoch?

sample_dataset = sampleDataset(imageFolderDataset=folder_dataset,
                                        transform=transforms.Compose([
                                                    transforms.Grayscale(num_output_channels=3),
                                                    transforms.Resize((244,244)),
                                                    transforms.ColorJitter(brightness=(0.2,1.0),contrast=(0.1,1.1),hue=.05, saturation=(.0,.15)),
                                                    transforms.ToTensor()
                                                ]),
                                        should_invert=False)

vis_dataloader = DataLoader(sample_dataset,
                        shuffle=True,
                        num_workers=8,
                        #num_workers=0,
                        batch_size=1)
dataiter = iter(vis_dataloader)

epochs = 100

for i in range(0,epochs):
  print('epoch ',i)
  for inputImg, posAnc, negAnc, pathList in dataiter:
    concatenated = torch.cat((inputImg, posAnc,negAnc),0)
    imshow(torchvision.utils.make_grid(concatenated))

Also if I want to use the same transformation from one epoch, wait a few epochs, and use that same transform (for example, the same data-augmented-transformed image from epoch 1 reappears in epoch 10), how would I do that?