Stream LR to visdom

def on_batch_end(self, batch_info):
        """ Stream LR to visdom """
        if self.settings.stream_lr:
            iteration_idx = (
                    float(batch_info.epoch_number) +
                    float(batch_info.batch_number) / batch_info.batches_per_epoch
            )
            
            lr = batch_info.optimizer.param_groups[-1]['lr']

            metrics_df = pd.DataFrame([lr], index=[iteration_idx], columns=['lr'])

            visdom_append_metrics(
                self.vis,
                metrics_df,
                first_epoch=(batch_info.epoch_number == 1) and (batch_info.batch_number == 0)
            )