Currently, my data is organized as follows:
- root
- class1
- img1.png
- img2.png
- imgN.png
- class2
- img1.png
.....
- imgN.png
- classN
.....
Now I can load the whole dataset as:
import torchvision.datasets as dset
train_folder_dataset = dset.ImageFolder(root=self.data_path)
This is great as I can now use this in my dataset and read all image files into my training dataset. Now, I want to split this dataset into training and validatioon but at the folder level (example I want the class1
folder to be in the training set and class2
in the validation set as an example).
However, I have no idea how to split this from thee ImageFoder
class. So, if I do something like:
all_dirs = dset.ImageFolder(root=self.data_path)
# Here how do I split this all_dirs into training and validation directories. Note, I want to split at the directory level and not at the image level.
# So hoping for something like:
train_dirs, val_dirs = spliit_folder(all_dirs)
Would something like this be possible?