The first thing I would verify is that the loop that contains:

            # forward + backward + optimize
            predicts = self.get_predict(x)
            loss = self.get_loss(predicts, y)
            loss.backward()
            optimizer.step() 


Is running as you expect. (is n_batch set to 0?) Is it looping?
Assuming that is working correctly I would examine the actual output of the loss function:
self.get_loss(...)
And ensure it is outputting a loss signal that makes sense.
Assuming all of the above checks out I would examine the output of self.model.parameters() … and ensure it is returning the modules / weights as you expect.