【深度学习】日志管理

设置日志格式

# 设置日志格式
def create_logger(log_name='ELI', log_file='', log_level='INFO'):
    # 清空日志内容
    with open(log_file, 'w') as f:
        f.truncate() # 清空文件内容

    # 设置格式
    log_format = '%(asctime)s - %(name)5s - %(levelname)5s : %(message)s'

    # 配置保存日志到文件的 Handler
    logging.basicConfig(level=log_level,
                        format=log_format,
                        filename=log_file)

    # 配置输出日志到终端的 Handler
    stream_handler = logging.StreamHandler()
    stream_handler.setLevel(log_level)
    stream_handler.setFormatter(logging.Formatter(log_format))

    # 添加 Handler
    logging.getLogger(log_name).addHandler(stream_handler)
    return logging.getLogger(log_name)

创建日志

# build looger
    os.makedirs(args.output_dir, exist_ok=True)
    logger = create_logger(log_file=os.path.join(args.output_dir, 'train.log'))
    logger.info(f'Device: {
      
      device}')

日志输出

方式一:

logger.info('Training Started!!')

 
方式二:

logger.info(f'Start Val EPOCH {
      
      epoch}\n')

log_str = '[EPOCH :{}/{}] - [BATCH {}/{}] |'.format(epoch, args.epoches, trained_batch, len(train_dataloader))
log_str += ' LR: {}, Loss: {:.6f}'.format(current_lr, laneLocLoss)
logger.info(log_str)

 
方式三:

log_str = '[EPOCH %02d] - [BATCH %04d/%04d] |' % (epoch, trained_batch, len(train_dataloader))
log_str += ' LR: %6f, Loss: %.4f' % (current_lr, laneLocLoss)
logger.info(log_str)

猜你喜欢

转载自blog.csdn.net/weixin_43799388/article/details/129727700