@ptrblck: thank you for your reply but I am not sure I understand what you have said 
So, dataset.classes does return folder names, but when I loop through ds , the target is showing me indices of  dataset.classes rather than the folder name 
To the NN I would pass the sample and the target(which here is the folder name), not the indices, right?
I am confused as to why this is… I obviously do not understand something 
So, when I do:
for idx, (sample, target) in enumerate(train_dataset):
    print(sample, list_of_classes[target] )

it seems to pick up the correct labels(aka target/folder_names). Is this the correct way to do it?