For the validation loader, I prefer drop_last=True when the model and evaluation loop assume fixed batch shapes. It avoids strange tail-batch behavior and makes metrics easier to compare across runs.

The tradeoff is that a small number of validation examples may be skipped, so the split size and reporting should make that explicit.