how to train a network that doesn't require any training data
The Wake-Sleep algorithm doesn't require any data during the sleep phase (effectively it generates it's own data). pytorch-lightning, however, appears to require a train_dataloader() method.
The only way I have to make pytorch-lightning run at all (for this admitted unusual case) is to specify some dummy dataset in train_dataloader, and then to ignore the data that gets passed to training_step. But I don't like that cycles are spent iterating through irrelevant data then. Is there a more elegant way?
I considered defining my own custom DataLoader that returns the simulated data that the sleep phase uses, but this started seeming like even more of a hack than the previous solution. After all, my "dataloader" doesn't load any data; it effectively generates new data every "epoch". It's seems unnatural to split the sleep phase updates in this way.
Is there a more straightforward way in lightning to train a network that doesn't require any data? Thanks!