Source code for gen_default_runtime
# Copyright (c) OpenMMLab. All rights reserved.
from mmengine.hooks import CheckpointHook, LoggerHook
from mmengine.model import MMSeparateDistributedDataParallel
from mmagic.engine import (IterTimerHook, LogProcessor,
MultiOptimWrapperConstructor, MultiTestLoop,
MultiValLoop)
from mmagic.evaluation import Evaluator
from mmagic.visualization import VisBackend, Visualizer
# env settings
# disable opencv multithreading to avoid system being overloaded
# set multi-process start method as `fork` to speed up the training
# configure for default hooks
[docs]default_hooks = dict(
# record time of every iteration.
timer=dict(type=IterTimerHook),
# print log every 100 iterations.
logger=dict(type=LoggerHook, interval=100, log_metric_by_epoch=False),
# save checkpoint per 10000 iterations
checkpoint=dict(
type=CheckpointHook,
interval=10000,
by_epoch=False,
max_keep_ckpts=20,
less_keys=['FID-Full-50k/fid', 'FID-50k/fid', 'swd/avg'],
greater_keys=['IS-50k/is', 'ms-ssim/avg'],
save_optimizer=True))
# config for environment
[docs]env_cfg = dict(
# whether to enable cudnn benchmark.
cudnn_benchmark=True,
# set multi process parameters.
mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
# set distributed parameters.
dist_cfg=dict(backend='nccl'))
# set log level
# load from which checkpoint
# whether to resume training from the loaded checkpoint
# config for model wrapper
[docs]model_wrapper_cfg = dict(
type=MMSeparateDistributedDataParallel,
broadcast_buffers=False,
find_unused_parameters=False)
# set visualizer
# config for training
# config for val
# config for test
# config for optim_wrapper_constructor