Cropping batches at the same position

concerning the shuffling where I already asked here, I solved it by doing like this


def shuffle_pairs(images):
	pairs = [[images[z+y] for y in range(2)] for z in range(len(images)-1)]
	random.shuffle(pairs)

	shuffled = []
	for x in pairs:
	  for y in x:
	    shuffled.append(y)

	return shuffled
class ImageFolder(data.Dataset):

    def __init__(self, root, transform=None, return_paths=False,
                 loader=default_loader):
        #imgs = sorted(make_dataset(root))
        # shuffle implicit pairs
        if "test" in root: 
            imgs = sorted(make_dataset(root))
        else:
            imgs = shuffle_pairs(sorted(make_dataset(root)))
        if len(imgs) == 0:
            raise(RuntimeError("Found 0 images in: " + root + "\n"
                               "Supported image extensions are: " +
                               ",".join(IMG_EXTENSIONS)))

        self.root = root
        self.imgs = imgs
        self.transform = transform
        self.return_paths = return_paths
        self.loader = loader

    def __getitem__(self, index):
        path = self.imgs[index]
        img = self.loader(path)
        if self.transform is not None:
            img.save('x_a1.png')
            img = self.transform(img)
            vutils.save_image(img, 'x_a2.png', nrow=1)
            #exit()
        if self.return_paths:
            return img, path
        else:
            return img

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

so i didn’t use any sampler or something related to a dataloader … I just shuffled the list after reading it from the folder
so this works fine for me now

what i want, is that for every 2 samples, they have the same cropping
so sample 1 and 2, will be cropped from the same position
sample 3 and 4
sample 5 and 6

and so on