venite's picture
initial
f670afc
raw
history blame
1.59 kB
# Copyright (C) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# This work is made available under the Nvidia Source Code License-NC.
# To view a copy of this license, check out LICENSE.md
import datetime
import os
from imaginaire.utils.distributed import master_only
from imaginaire.utils.distributed import master_only_print as print
from imaginaire.utils.meters import set_summary_writer
def get_date_uid():
"""Generate a unique id based on date.
Returns:
str: Return uid string, e.g. '20171122171307111552'.
"""
return str(datetime.datetime.now().strftime("%Y_%m%d_%H%M_%S"))
def init_logging(config_path, logdir):
r"""Create log directory for storing checkpoints and output images.
Args:
config_path (str): Path to the configuration file.
logdir (str): Log directory name
Returns:
str: Return log dir
"""
config_file = os.path.basename(config_path)
root_dir = 'logs'
date_uid = get_date_uid()
# example: logs/2019_0125_1047_58_spade_cocostuff
log_file = '_'.join([date_uid, os.path.splitext(config_file)[0]])
if logdir is None:
logdir = os.path.join(root_dir, log_file)
return date_uid, logdir
@master_only
def make_logging_dir(logdir):
r"""Create the logging directory
Args:
logdir (str): Log directory name
"""
print('Make folder {}'.format(logdir))
os.makedirs(logdir, exist_ok=True)
tensorboard_dir = os.path.join(logdir, 'tensorboard')
os.makedirs(tensorboard_dir, exist_ok=True)
set_summary_writer(tensorboard_dir)