What are the `outputs` in the `on_train_batch_end` callback?
❓ Questions and Help
Before asking:

Try to find answers to your questions in the Lightning Forum!
Search for similar issues.
Search the docs.


What is your question?
For my application, I need to save the raw outputs of the model to disk for every training and validation example. I think a callback is the right thing to use for this-- PL already has hooks in "on_train_batch_end". According to the latest docs, this method takes an outputs arg, which I presume to be the outputs of the pl_module, or the value returned by the training_step function. However, no matter what I change in the training_step, outputs is always an empty list. Likewise, the outputs in on_train_epoch_end is an empty list of lists.
class SaverCallback(Callback):
    def __init__(self):
        super().__init__()

    def on_train_epoch_end(self, trainer, pl_module, outputs):
        print('train epoch outputs: {}'.format(outputs))

    def on_train_batch_end(self, trainer, pl_module, outputs, batch, batch_idx, dataloader_idx):
        print('train outputs: {}'.format(outputs))

    def on_validation_batch_end(self, trainer, pl_module, outputs, batch, batch_idx, dataloader_idx):
        # import pdb; pdb.set_trace()
        print('val outputs: {}'.format(outputs))

    def on_validation_epoch_end(self, trainer, pl_module):
        pass
Here are the relevant portions of my Lightning Module:
    def training_step(self, batch_dict, batch_i):
        ...
        return {'loss': loss, 'testing': 'testing'}

    def validation_step(self, batch_dict, batch_i):
        ...
        return {'loss': loss, 'testing': 'testing'}
Results:
train outputs: []
val outputs: {'loss': tensor(0.0395, device='cuda:0', dtype=torch.float64), 'testing': 'testing'}
train epoch outputs: [[]]

Where are train outputs defined?
Possibly related issues:
#3864
#3592
#4609
What's your environment?

OS: Linux
Packaging pip
Version 1.0.4, installed from master