So, I'm trying to load this dataset in pytorch, I'm facing a problem while loading it.
As you can make out my checking the dataset that the directory looks somethings like this:
root
monet_jpg
monet_tfrec
photo_jpg
photo_tfrec
So, I want to load the photo and monet images in separate dataloader variables. But this method doesn't seem to work.
EDIT: By that I mean the monet_ds and photo_ds return only monet images (while photo_ds should return images from photo_jpg)
I'm trying to load the data through this code:
import torchvision.datasets as dset
import torchvision.utils as vutils
from torch.utils.data import Subset
def load_data(dataroot , image_size, batch_size, workers,ngpu,shuffle=True):
#DataLoading
# Create the dataset
dataset = dset.ImageFolder(root=dataroot,
transform=transforms.Compose([
transforms.Resize(image_size),
transforms.CenterCrop(image_size),
transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
]))
print(dataset.class_to_idx)
#print(dataset.imgs)
monet_ds = Subset(dataset, range(0,299))
photo_ds = Subset(dataset, range(300,))
# Create the dataloader
monet_ds = torch.utils.data.DataLoader(monet_ds, batch_size=batch_size,
num_workers=workers)
photo_ds = torch.utils.data.DataLoader(photo_ds, batch_size=batch_size,
num_workers=workers)
# Decide which device we want to run on
device = torch.device("cuda:0" if (torch.cuda.is_available()) else "cpu")
print("Data loaded...")
root = "../input/gan-getting-started"
monet_ds, photo_ds, device = load_data(root, image_size, batch_size, workers, ngpu)
Any help for loading this data perfectly in pytorch would be of good help. Thank you.