Validating on the same data as for training is pretty much testing if dropout and batchnorm layers are working ok.
As for your case, you can track your loss with more than 4 digits after decimal (and per each batch with shuffle=False). If it doesn’t change at all, then either something wrong with loss value or with gradients, since weights are not adjusted at all. IDK, ‘nan’ in gradients? Or maybe, just maybe, you’re overwriting weights each epoch?