I have the following dataloader below:
def load_dataset(size_batch, size): data_path = "/home/bledc/dataset/test_set/crops_BSD" transformations = transforms.Compose([ transforms.Grayscale(num_output_channels=1), transforms.ToTensor() ]) train_dataset = datasets.ImageFolder( root=data_path, transform=transformations ) train_loader = torch.utils.data.DataLoader( train_dataset, batch_size=size_batch, shuffle=True, num_workers=0, drop_last=True ) return train_loader
I iterate through it in my training loop with the following:
data_loader = load_dataset(batch_size, width) for data in data_loader: model.zero_grad() optimizer.zero_grad() img, _ = data img = img.to(device)
Can someone explain to me what the benefit would be of writing the load_dataset() function into a class? The reason for this is that I have been using the above template for dataloading from code I found online but it seems that most codebases use
class LoaderName(Dataset) followed by definiting initial conditions and super().