Sure,
y_pred.shape
torch.Size([8962, 1])

y_train_tensor.shape
torch.Size([8962])

It does give the following error from time to time:
/home/vintodrimmer/.local/lib/python3.6/site-packages/torch/nn/modules/loss.py:431: UserWarning: Using a target size (torch.Size([8962])) that is different to the input size (torch.Size([8962, 1])). This will likely lead to incorrect results due to broadcasting. Please ensure they have the same size.
  return F.mse_loss(input, target, reduction=self.reduction)

I tried to solve it with
target = target.view(-1,1)

but I’m not sure whether it’s working, since the error message is not always printed.

Do you know, what loss reduction is use in Keras by default? Since you are summing the batch loss, I assume Keras is doing the same?

It should be SUM_OVER_BATCH_SIZE by default, so I assume them to be the same.

what does the 8962 stand for in the model summary?

Number of observations in the training set.
EDIT: after unsqueezing it does work, but still only approaches MSE of 600 after 30 000 epochs.
Is that to be expected?