question: Clarification on reload_dataloaders_every_epoch
context: With a basic Datamodule like:
  class MyDM(pl.lightningDataModule):
      def __init__(self,):
          <init some stuff>
  
      def setup(self, stage:typing.Optional[str] = None):
          .... <sort out dataset etc>
  
     def train_dataloader(self):
           ....
     etc etc
  
  model = MyModel()
  data = MyDM()
  trainer pl.Trainer(reload_dataloaders_every_n_epochs=5)
  trainer.fit(model, data)
  
  Does the flag reload_dataloaders_every_n_epochs=N cause data.setup() to be called every reload.
  I expect my dataset to be constantly changing and am currently assuming that I can define anything I don't expect to be changing in init and anything I will need to change every N epochs in setup. A quick look at the pl.trainer source code (specifically the reset_train_dataloader method) doesn't immediately elucidate this for me.
answer: no, it doesn't call setup at every reload, just the corresponding _dataloader hook. You can define the datasets in setup and access them inside dataloader_hooks or can initialize the corresponding dataset inside dataloader_hook as well.