in utils/eval_utils.py [0:0]
def prepare_environment(args, cfg, fold):
if args.distributed:
while True:
try:
dist.init_process_group(backend='nccl', init_method='tcp://localhost:{}'.format(args.port), world_size=args.world_size, rank=args.gpu)
break
except RuntimeError:
args.port = str(int(args.port) + 1)
model_cfg = yaml.safe_load(open(args.model_cfg))['model']
eval_dir = '{}/{}/eval-{}/fold-{:02d}'.format(model_cfg['model_dir'], model_cfg['name'], cfg['benchmark']['name'], fold)
os.makedirs(eval_dir, exist_ok=True)
yaml.safe_dump(cfg, open('{}/config.yaml'.format(eval_dir), 'w'))
logger = utils.logger.Logger(quiet=args.quiet, log_fn='{}/eval.log'.format(eval_dir), rank=args.gpu)
if any(['SLURM' in env for env in list(os.environ.keys())]):
logger.add_line("=" * 30 + " SLURM " + "=" * 30)
for env in os.environ.keys():
if 'SLURM' in env:
logger.add_line('{:30}: {}'.format(env, os.environ[env]))
logger.add_line("=" * 30 + " Config " + "=" * 30)
def print_dict(d, ident=''):
for k in d:
if isinstance(d[k], dict):
logger.add_line("{}{}".format(ident, k))
print_dict(d[k], ident=' '+ident)
else:
logger.add_line("{}{}: {}".format(ident, k, str(d[k])))
print_dict(cfg)
logger.add_line("=" * 30 + " Model Config " + "=" * 30)
print_dict(model_cfg)
return eval_dir, model_cfg, logger