123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- # general settings
- name: train_RealESRGANx4plus_400k_B12G4
- model_type: RealESRGANModel
- scale: 4
- num_gpu: auto # auto: can infer from your visible devices automatically. official: 4 GPUs
- manual_seed: 0
- # ----------------- options for synthesizing training data in RealESRGANModel ----------------- #
- # USM the ground-truth
- l1_gt_usm: True
- percep_gt_usm: True
- gan_gt_usm: False
- # the first degradation process
- resize_prob: [0.2, 0.7, 0.1] # up, down, keep
- resize_range: [0.15, 1.5]
- gaussian_noise_prob: 0.5
- noise_range: [1, 30]
- poisson_scale_range: [0.05, 3]
- gray_noise_prob: 0.4
- jpeg_range: [30, 95]
- # the second degradation process
- second_blur_prob: 0.8
- resize_prob2: [0.3, 0.4, 0.3] # up, down, keep
- resize_range2: [0.3, 1.2]
- gaussian_noise_prob2: 0.5
- noise_range2: [1, 25]
- poisson_scale_range2: [0.05, 2.5]
- gray_noise_prob2: 0.4
- jpeg_range2: [30, 95]
- gt_size: 256
- queue_size: 180
- # dataset and data loader settings
- datasets:
- train:
- name: DF2K+OST
- type: RealESRGANDataset
- dataroot_gt: datasets/DF2K
- meta_info: datasets/DF2K/meta_info/meta_info_DF2Kmultiscale+OST_sub.txt
- io_backend:
- type: disk
- blur_kernel_size: 21
- kernel_list: ['iso', 'aniso', 'generalized_iso', 'generalized_aniso', 'plateau_iso', 'plateau_aniso']
- kernel_prob: [0.45, 0.25, 0.12, 0.03, 0.12, 0.03]
- sinc_prob: 0.1
- blur_sigma: [0.2, 3]
- betag_range: [0.5, 4]
- betap_range: [1, 2]
- blur_kernel_size2: 21
- kernel_list2: ['iso', 'aniso', 'generalized_iso', 'generalized_aniso', 'plateau_iso', 'plateau_aniso']
- kernel_prob2: [0.45, 0.25, 0.12, 0.03, 0.12, 0.03]
- sinc_prob2: 0.1
- blur_sigma2: [0.2, 1.5]
- betag_range2: [0.5, 4]
- betap_range2: [1, 2]
- final_sinc_prob: 0.8
- gt_size: 256
- use_hflip: True
- use_rot: False
- # data loader
- use_shuffle: true
- num_worker_per_gpu: 5
- batch_size_per_gpu: 12
- dataset_enlarge_ratio: 1
- prefetch_mode: ~
- # Uncomment these for validation
- # val:
- # name: validation
- # type: PairedImageDataset
- # dataroot_gt: path_to_gt
- # dataroot_lq: path_to_lq
- # io_backend:
- # type: disk
- # network structures
- network_g:
- type: RRDBNet
- num_in_ch: 3
- num_out_ch: 3
- num_feat: 64
- num_block: 23
- num_grow_ch: 32
- network_d:
- type: UNetDiscriminatorSN
- num_in_ch: 3
- num_feat: 64
- skip_connection: True
- # path
- path:
- # use the pre-trained Real-ESRNet model
- pretrain_network_g: experiments/pretrained_models/RealESRNet_x4plus.pth
- param_key_g: params_ema
- strict_load_g: true
- resume_state: ~
- # training settings
- train:
- ema_decay: 0.999
- optim_g:
- type: Adam
- lr: !!float 1e-4
- weight_decay: 0
- betas: [0.9, 0.99]
- optim_d:
- type: Adam
- lr: !!float 1e-4
- weight_decay: 0
- betas: [0.9, 0.99]
- scheduler:
- type: MultiStepLR
- milestones: [400000]
- gamma: 0.5
- total_iter: 400000
- warmup_iter: -1 # no warm up
- # losses
- pixel_opt:
- type: L1Loss
- loss_weight: 1.0
- reduction: mean
- # perceptual loss (content and style losses)
- perceptual_opt:
- type: PerceptualLoss
- layer_weights:
- # before relu
- 'conv1_2': 0.1
- 'conv2_2': 0.1
- 'conv3_4': 1
- 'conv4_4': 1
- 'conv5_4': 1
- vgg_type: vgg19
- use_input_norm: true
- perceptual_weight: !!float 1.0
- style_weight: 0
- range_norm: false
- criterion: l1
- # gan loss
- gan_opt:
- type: GANLoss
- gan_type: vanilla
- real_label_val: 1.0
- fake_label_val: 0.0
- loss_weight: !!float 1e-1
- net_d_iters: 1
- net_d_init_iters: 0
- # Uncomment these for validation
- # validation settings
- # val:
- # val_freq: !!float 5e3
- # save_img: True
- # metrics:
- # psnr: # metric name
- # type: calculate_psnr
- # crop_border: 4
- # test_y_channel: false
- # logging settings
- logger:
- print_freq: 100
- save_checkpoint_freq: !!float 5e3
- use_tb_logger: true
- wandb:
- project: ~
- resume_id: ~
- # dist training settings
- dist_params:
- backend: nccl
- port: 29500
|