You could create a new dataloader with the new sampler every epoch. If you don’t want to do this, do you mind sharing what the differences in the samplers are? Perhaps you can create one sampler that can take the behavior of all the samplers you need