def METHOD_NAME(args):
    assert args.cfg is not None, \
        'No configuration file specified, please set --config'
    cfg = Config(
        args.cfg,
        learning_rate=args.learning_rate,
        iters=args.iters,
        batch_size=args.batch_size,
        opts=args.opts)
    builder = MatBuilder(cfg)
    paddleseg.utils.show_env_info()
    paddleseg.utils.show_cfg_info(cfg)
    paddleseg.utils.set_seed(args.seed)
    paddleseg.utils.set_device(args.device)
    paddleseg.utils.set_cv2_num_threads(args.num_workers)
    model = paddleseg.utils.convert_sync_batchnorm(builder.model, args.device)
    train_dataset = builder.train_dataset
    if args.repeats > 1:
        train_dataset.fg_bg_list *= args.repeats
    val_dataset = builder.val_dataset if args.do_eval else None
    optimizer = builder.optimizer
    if args.seed is not None:
        paddle.seed(args.seed)
        np.random.seed(args.seed)
        random.seed(args.seed)
    train(
        model,
        train_dataset=train_dataset,
        val_dataset=val_dataset,
        optimizer=optimizer,
        iters=cfg.iters,
        batch_size=cfg.batch_size,
        num_workers=args.num_workers,
        use_vdl=args.use_vdl,
        save_interval=args.save_interval,
        log_iters=args.log_iters,
        resume_model=args.resume_model,
        save_dir=args.save_dir,
        eval_begin_iters=args.eval_begin_iters,
        metrics=args.metrics,
        precision=args.precision,
        amp_level=args.amp_level,
        profiler_options=args.profiler_options)