What makes you say your gradients are zeros?
It kind of looks to me that your model is training (since train_loss goes down ever so slightly). Try increasing your learning rate and see if anything changes. You can also iterate over your model parameters and check to see if their gradients are actually zero.