Your target variables are conceptually discrete, so gradient descent for MSE loss struggles, as it implicitly fits means of gaussian distributions. Poisson regression (see PoissonNLLLoss) or reformulating the task as classification should work better.
Note that you could use something like LinearRegression from sklearn, that returns a closed form solution without doing mini-batch gradient descent.