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