How frequently are train_dataloader and val_dataloader called?

It appears that the validation loader gets created once for the initial check, and then once again for actual validation whereas the training loader only get created once.