Thank you  for the reply @Bilal.
Yes it seems true.
But for reproducibility I have used below code snippet
"seed =1234
random.seed(seed)
os.environ[‘PYTHONHASHSEED’] = str(seed)
th.manual_seed(seed)
th.cuda.manual_seed(seed)
th.cuda.manual_seed_all(seed)
th.backends.cudnn.deterministic = True "
which is giving me epoch wise same test and train accuracy for all 3 models every time I experiment.
SO, I think this would happen only if the training batches are loaded in similar way every time for original model and 2 new models.
Am I  correct?
If it is correct same batches should be loading for each of the models every time right ?