You are right in that we use the validation and test data to measure the performance of the model. However, normalization (with the training stats) does not rule out our intention.
The model you’ve trained has learned on normalized input (e.g. values between 0 and 1). In the validation case the model would receive completely “unknown” inputs in another range (e.g. 0 to 255 for uint8 images). This will often yield to a constant output of your model, since the parameters “saturate” on the input range.