Well, if I remember correctly, I’ve seen a similar issue before in one of my models.
It might be completely unrelated to your issue, but maybe it could give you some idea.
I’ve created a CNN for a regression task and apparently the training hyper-parameters (lr, momentum) and the weight init were quite bad for the current model, so that after a while the weights were dropped all to zero and just the bias tensor in the last layer determined the output.
This model was thus quite useless, since the output was a constant (mean of all regression outputs).
So the mean error was good, but the input didn’t determine the output.
If I remember correctly, just the weights of the last layer were all zeros, the other weights were still “random”.