0

A simple dataLoader for image segmentation. I am having trouble with pathing the dataset from my computer file

import torchvision
import torch
import torchvision.transforms as transforms
import numpy as np
import matplotlib.pyplot as plt 
import os, os.path

train_dataset_path = '/Users/NAME/Desktop/dataset/train_images'  >the path
test_dataset_path = '/Users/NAME/Desktop/dataset/val_images'



mean = [0.4363, 0.4328, 0.3291]
std = [0.2129, 0.2075, 0.2038]

train_transforms = transforms.Compose([
    transforms.Resize((224,224)),
    transforms.RandomHorizontalFlip(),
    transforms.RandomRotation(10),
    transforms.ToTensor(),
    transforms.Normalize(torch.Tensor(mean), torch.Tensor(std))
    ])

test_transforms = transforms.Compose([
    transforms.Resize((224,224)),
    transforms.ToTensor(),
    transforms.Normalize(torch.Tensor(mean), torch.Tensor(std))
])

train_dataset = torchvision.datasets.ImageFolder(root = train_dataset_path, transform 
= train_transforms)
test_dataset = torchvision.datasets.ImageFolder(root = test_dataset_path, transform = 
test_transforms)

def show_transformed_images(dataset):
loader = torch.utils.data.Dataloader(dataset, batch_size = 6, shuffle=True)
batch = next(iter(loader))
images, labels = batch

grid =  torchvision.utils.make_grid(images, nrow = 3)
plt.figure(figsize=(11,11))
plt.imshow(np.transpose(grid, (1,2,0)))
print('labels: ', labels)

I am getting the prompt message:

RuntimeError: Found 0 files in subfolders of:/Users/NAME/Desktop/dataset/train_images

John Kim
  • 1,081
  • 10
  • 26
Mw W
  • 1

1 Answers1

0

First verify if your path is actually correct :

print(os.listdir('your/path'))

Second, according to pytorch dataloader you should be inputting the parent path of the image folder path. So for example, if your training images path is something like

'./dataset/images/'

the path of your dataloader should be

'./dataset'
John Kim
  • 1,081
  • 10
  • 26