Add multiple dataloaders documentation to "common use cases"
🚀 Feature
Currently, only one train/val loader is supported by pytorch lightning. I would like to help with this and I could implement this feature.
Motivation
Many methods for semi-supervised learning need several dataloaders. E.g. you want to sample one batch of labeled data and 2 batches of unlabeled data.
Pitch
I think that the following API modification of the will be ok:

pl.LightningModule.train_dataloader should return either one loader, or a dict of loaders
pl.LightningModule needs to support a sampling config and a data sampling hook
pl.LightningModule.train_step API will be unchanged for 1 loader, but in case if there is a dict of loaders, it will receive a dict of batches, where a key would correspond to the dataset name.

Example:
class MyModule(pl.LightningModule):
    def __init__(self):
        ... 
    def sample_batches(self):
        return {'labeled_data': 2, 'unlabeled_data':1}

    def train_dataloader(self):
        ...
        return {'labeled_data': labeled_loader, 'unlabeled_data': unlabeled_loader}

    def train_step(self, batch, batch_idx):
        labeled = batch['labeled_data'] # has two batches of data!
        unlabeled = batch['unlabeled_data']
        loss_val = 0
        for batch_l in labeled:
            out = self.model(batch_l['images'])
            loss_val += self.loss(out, batch_l['targets'])
        ...

Alternatives
Can't think of any alternative with a clean code.