Thank you so much @ptrblck . Once again thank you for your time. I really appreciate your help.
But eventually with above solution I am facing an issue in def train_epoch where I call
        optimizer.zero_grad()
        outputs = model(*data)

to plot the accuracy vs loss curve or to fit the model.
I did not understand how I am supposed to give dataset object in siamese class. How it will pick 2 random images. I have a single folder  which contains 21600 images , and csv files which contains labels. (Training, Validation, Testing CSV files).
In my above code, in class Siamese(Dataset): I am choosing the 2 random images as you did.
is their a problem with dataset I am loading using class Classifier(Dataset):
??
Where I am returning only img and lable.