{ "task": "baseline" // real-world image sr. root/task/images-models-options , "model": "plain" // "plain" | "plain2" if two inputs , "gpu_ids": [0] , "dist": false , "scale": 1 // broadcast to "datasets" , "n_channels": 3 // broadcast to "datasets", 1 for grayscale, 3 for color , "path": { "root": "masked_denoising" // "denoising" | "superresolution" | "dejpeg" , "pretrained_netG": null // path of pretrained model , "pretrained_netE": null // path of pretrained model } , "datasets": { "train": { "name": "train_dataset" // just name , "dataset_type": "masked_denoising" // "dncnn" | "dnpatch" | "fdncnn" | "ffdnet" | "sr" | "srmd" | "dpsr" | "plain" | "plainpatch" | "jpeg" | "masked_denoising" , "dataroot_H": "trainsets/trainH" // path of H training dataset. DIV2K (800 training images) + Flickr2K (2650 images) + + OST (10324 images) , "dataroot_L": null // path of L training dataset , "H_size": 64 // patch_size 256 | 288 | 320 (256) , "lq_patchsize": 64 // (64) , "dataloader_shuffle": true , "dataloader_num_workers": 2 , "dataloader_batch_size": 16 // batch size 1 | 16 | 32 | 48 | 64 | 128. Total batch size =4x8=32 in SwinIR (32) , "noise_level": 15 , "if_mask": false , "mask1": 75 , "mask2": 75 } , "test": { "name": "test_dataset" // just name , "dataset_type": "plain" // "dncnn" | "dnpatch" | "fdncnn" | "ffdnet" | "sr" | "srmd" | "dpsr" | "plain" | "plainpatch" | "jpeg" , "dataroot_H": "testset/McM/HR" // path of H testing dataset , "dataroot_L": "testset/McM/McM_poisson_20" // path of L testing dataset } } , "netG": { "net_type": "swinir" , "upscale": 1 , "in_chans": 3 , "img_size": 64 , "window_size": 8 // 8 !!!!!!!!!!!!!!! , "img_range": 1.0 , "depths": [6, 6, 6, 6] , "embed_dim": 60 , "num_heads": [6, 6, 6, 6] , "mlp_ratio": 2 , "upsampler": null // "pixelshuffle" | "pixelshuffledirect" | "nearest+conv" | null , "resi_connection": "3conv" // "1conv" | "3conv" , "init_type": "default" , "talking_heads": false , "attn_fn": "softmax" // null | "softmax" | "entmax15" | , "head_scale": false , "on_attn": false , "use_mask": false // if use attention mask , "mask_ratio1": 75 // attention mask ratio, , "mask_ratio2": 75 // randomly sampling from [mask_ratio1, mask_ratio2] , "mask_is_diff": false , "type": "stand" } , "train": { "manual_seed": 1 , "G_lossfn_type": "l1" // "l1" preferred | "l2sum" | "l2" | "ssim" | "charbonnier" , "G_lossfn_weight": 1.0 // default , "E_decay": 0.999 // Exponential Moving Average for netG: set 0 to disable; default setting 0.999 , "G_optimizer_type": "adam" // fixed, adam is enough , "G_optimizer_lr": 1e-4 // 2e-4 // learning rate , "G_optimizer_wd": 0 // weight decay, default 0 , "G_optimizer_clipgrad": null // unused , "G_optimizer_reuse": true // , "G_scheduler_type": "MultiStepLR" // "MultiStepLR" is enough , "G_scheduler_milestones": [] // [250000, 400000, 450000, 475000, 500000] , "G_scheduler_gamma": 0.5 , "G_regularizer_orthstep": null // unused , "G_regularizer_clipstep": null // unused , "G_param_strict": true , "E_param_strict": true , "checkpoint_test": 5000 // for testing (5000) , "checkpoint_save": 5000 // for saving model , "checkpoint_print": 100 // for print , "save_image": ["img_043_x1", "img_021_x1", "img_024_x1", "img_031_x1", "img_041_x1", "img_032_x1"] // [250000, 400000, 450000, 475000, 500000] } }