How to deal with an images dataset?

Hi everyone.
I want to use CNNs on these data:


As you can see, images belong to 9 classes, one class per folder. Then each folder contains 2 folders: ClassX and ClassX_GT, with GT standing for ground truth of images after segmentation.
I want to work with simple images, so without segmentation and ground truth.
I am working on Google Colab. My question is: how to split into train, validation and test set? Is it okay to create a pandas dataframe and then perform splitting? Or with images is not possible use the pandas dataframe?
If dataframe is not possible, I have to split images before transforming into tensors, or after the transformation?
And another important question: I have to specify the labels? I mean, if for example the fish is Shrimp, each image of the folder is 0001.png, 0002.png and so on… The folder is names Shrimp. How is it possible that the name of the folder is the label? I have to specify something to do this?