code: def run_epoch(self, epoch_info: EpochInfo, source: 'vel.api.Source'):
          
          epoch_info.on_epoch_begin()
  
          lr = epoch_info.optimizer.param_groups[-1]['lr']
          print("|-------- Epoch {:06} Lr={:.6f} ----------|".format(epoch_info.global_epoch_idx, lr))
  
          self.train_epoch(epoch_info, source)
          epoch_info.result_accumulator.freeze_results('train')
  
          self.validation_epoch(epoch_info, source)
          epoch_info.result_accumulator.freeze_results('val')
  
          epoch_info.on_epoch_end()
docs: Run full epoch of learning