Thanks a lot, the thing I am trying to grok here is that Pytorch doesn’t actually return the label of the image but the index of the highest probability in the output tensor right? Does it internally sort classes from 0 through n-1 classes such that index correspond to the class.
So though my label_list doesn’t  start with class 0 but class 77 , and suppose my model returns index 48 as the highest probability when I do probs.max(dim=1)[1] by passing in some random image, does the index 48 mean class 48, which I can then look in my class_dict . Hope my question is clear and thank you once again.
Regarding the whole data for train, valid and test, I have a function that does the splitting into each.
    def get_train_valid_split(dataset, shuffle=True, first_split=0.8, second_split=0.9, random_seed=1):

"""

:param dataset: dataset
:param shuffle: shuffles the indices so random elements from our data find themselves in our splits.
:param first_split: this is for train
:param second_split: for validation
:param random_seed: for test
:return: train, validation and test loaders
"""
dataset_size = len(dataset)  # get any, we just need the length, say its n
indices = list(range(dataset_size))  # 0 though n-1.
split1 = int(np.floor(first_split * dataset_size))
split2 = int(np.floor(second_split * dataset_size))

if shuffle:
    np.random.seed(random_seed)
    np.random.shuffle(indices)

train_idx = indices[:split1]
val_idx = indices[split1:split2]
test_idx = indices[split2:]

samplers = {'train': SubsetRandomSampler(train_idx), 'valid': SubsetRandomSampler(val_idx),
            'test': SubsetRandomSampler(test_idx)}

dataloader = {x: torch.utils.data.DataLoader(image_datasets[x], batch_size=64, sampler=samplers[x]) for x in
               ['train', 'valid', 'test']}

return dataloader

data_loaders = get_train_valid_split(image_datasets[‘train’])  # any key works, need to get length in order to split.
    print(data_loaders)
   {'train': <torch.utils.data.dataloader.DataLoader object at 0x7f7966ceb860>, 'valid': <torch.utils.data.dataloader.DataLoader object at 0x7f7966ceb978>, 'test': <torch.utils.data.dataloader.DataLoader object at 0x7f7966ceb9e8>}

    dataset_sizes = {x: len(data_loaders[x]) for x in ['train', 'valid', 'test']}
    print(dataset_sizes)
   {'train': 103, 'valid': 13, 'test': 13} # batch_size = 64.