In my dataloader, I want to return images after sampling using random.sample(list,sample_size) from a folder. However, if the number of workers is more than 1, the workers might be accessing the same file at the same time. How do I deal with this?
eg -
class Loader(torch.utils.data.Dataset):
def __init__(self, root_dir, length_sample):
self.root_dir = root_dir
self.length_sample = length_sample
def __getitem__(self,index):
images = random.sample(glob.glob(root_dir+"/*"), self.length_sample)
result_images = []
for p in images:
im = Image.open(p)
result_images.append(transforms.ToTensor()(im))
return torch.cat(result_images)