Log epoch as step when on_epoch=True and on_step=False
🚀 Feature

When using the new structured Result API, it is no longer possible to force PL to report the epoch as the current step to loggers instead of the global step (or elapsed number of training steps).
Motivation

This results in confusing results when viewing results in a tool that uses step count by default (e.g. tensorboard's scalars view). Intuitively, one would think .log(..., on_epoch=True, on_step=False) would count epochs and not steps.
It is possible to obtain this behaviour by overriding both training_epoch_end and validation_epoch_end and returning an EvalResult with a "step" metric. Unfortunately, this adds back a bunch of boilerplate and many of the nice metric aggregation features PL offers when *_epoch_end is not implemented.
Pitch

Either a) allow for overriding the step for a given result, or b) default that step to current_epoch when on_epoch=True and on_step=False.
Alternatives


Use a "step" key with the old dict-based logging system (not documented, but worked as of 0.8.3)
Override train/validation_epoch_end and add return an EvalResult with .log('step', self.current_epoch).

Additional context

Original discussion: https://forums.pytorchlightning.ai/t/is-there-a-way-to-only-log-on-epoch-end-using-the-new-result-apis/74/3