xsquared:

with torch.no_grad():


You are not using any gradients for both the train and val loaders. So no gradient descent => no updates!. Try making separate loops for both loaders: train_loader must not have no_grad().
Hope that helps!