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?