def setup_after_launch(cfg, output_dir, runner):
    '\n    Set things up after entering DDP, including\n        - creating working directory\n        - setting up logger\n        - logging environment\n        - initializing runner\n    '
    create_dir_on_global_main_process(output_dir)
    comm.synchronize()
    setup_loggers(output_dir)
    cfg.freeze()
    if (cfg.OUTPUT_DIR != output_dir):
        with temp_defrost(cfg):
            logger.warning('Override cfg.OUTPUT_DIR ({}) to be the same as output_dir {}'.format(cfg.OUTPUT_DIR, output_dir))
            cfg.OUTPUT_DIR = output_dir
    logger.info('Initializing runner ...')
    runner = initialize_runner(runner, cfg)
    log_info(cfg, runner)
    dump_cfg(cfg, os.path.join(output_dir, 'config.yaml'))
    auto_scale_world_size(cfg, new_world_size=comm.get_world_size())
Set things up after entering DDP, including
    - creating working directory
    - setting up logger
    - logging environment
    - initializing runner
def setup_after_launch(cfg, output_dir, runner):
    '\n    Set things up after entering DDP, including\n        - creating working directory\n        - setting up logger\n        - logging environment\n        - initializing runner\n    '
    create_dir_on_global_main_process(output_dir)
    comm.synchronize()
    setup_loggers(output_dir)
    cfg.freeze()
    if (cfg.OUTPUT_DIR != output_dir):
        with temp_defrost(cfg):
            logger.warning('Override cfg.OUTPUT_DIR ({}) to be the same as output_dir {}'.format(cfg.OUTPUT_DIR, output_dir))
            cfg.OUTPUT_DIR = output_dir
    logger.info('Initializing runner ...')
    runner = initialize_runner(runner, cfg)
    log_info(cfg, runner)
    dump_cfg(cfg, os.path.join(output_dir, 'config.yaml'))
    auto_scale_world_size(cfg, new_world_size=comm.get_world_size())