def run_epoch(self, epoch_info: EpochInfo, source: '<STR_LIT>'):
epoch_info.on_epoch_begin()<EOL>lr = epoch_info.optimizer.param_groups[-<NUM_LIT:1>]['<STR_LIT>']<EOL>print("<STR_LIT>".format(epoch_info.global_epoch_idx, lr))<EOL>self.train_epoch(epoch_info, source)<EOL>epoch_info.result_accumulator.freeze_results('<STR_LIT:train>')<EOL>self.validation_epoch(epoch_info, source)<EOL>epoch_info.result_accumulator.freeze_results('<STR_LIT>')<EOL>epoch_info.on_epoch_end()<EOL>
Run full epoch of learning