[docs]classLogger:def__init__(self,accelerator,log_path):ifacceleratorisNone:self.logger=logging.getLogger('MainLogger')self.logger.setLevel(logging.INFO)else:self.logger=get_logger('Main')# Make one log on every process with the configuration for debugging.logging.basicConfig(format="%(asctime)s - %(levelname)s - %(name)s - %(message)s",datefmt="%m/%d/%Y %H:%M:%S",level=logging.INFO,)handler=logging.FileHandler(log_path)handler.setFormatter(logging.Formatter('%(message)s',""))ifacceleratorisNone:self.logger.addHandler(handler)else:self.logger.logger.addHandler(handler)self.logger.info(accelerator.state,main_process_only=False)self.logger.info(f'Working directory is {os.getcwd()}')
[docs]deflog_stats(self,stats,epoch,args,prefix=''):msg_start=f'[{prefix}] Epoch {epoch} out of {args.total_epochs}'+' | 'dict_msg=' | '.join([f'{k.capitalize()} --> {v:.5f}'fork,vinstats.items()])+' | 'msg=msg_start+dict_msgself.log_message(msg)