File size: 4,741 Bytes
2514fb4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
{
  "task": "msrresnet_gan" //  
  , "model": "gan" // "gan"
  , "gpu_ids": [0]

  , "scale": 4       // broadcast to "netG" if SISR
  , "n_channels": 3  // broadcast to "datasets", 1 for grayscale, 3 for color
  , "sigma": [0, 50] // 15, 25, 50 for DnCNN | [0, 75] for FDnCNN and FFDNet
  , "sigma_test": 0  // 15, 25, 50 for DnCNN, FDnCNN and FFDNet, 0 for SR

  , "merge_bn": false              // if no BN exists, set false
  , "merge_bn_startpoint": 400000  // merge BN after N iterations

  , "path": {
    "root": "superresolution"  // "denoising" | "superresolution"
    , "pretrained_netG": null  // path of pretrained model
    , "pretrained_netD": null  // path of pretrained model
	, "pretrained_netE": null  // path of pretrained model
	}

  , "datasets": {
    "train": {
      "name": "train_dataset"           // just name
      , "dataset_type": "sr"          // "dncnn" | "dnpatch" | "fdncnn" | "ffdnet" | "sr" | "srmd" | "dpsr" | "plain" | "plainpatch"
      , "dataroot_H": "trainsets/trainH"// path of H training dataset
      , "dataroot_L": null              // path of L training dataset
      , "H_size": 96                    // patch size 40 | 64 | 96 | 128 | 192
      , "dataloader_shuffle": true
      , "dataloader_num_workers": 8
      , "dataloader_batch_size": 32     // batch size 1 | 16 | 32 | 48 | 64 | 128
    }
    , "test": {
      "name": "test_dataset"            // just name
      , "dataset_type": "sr"            // "dncnn" | "dnpatch" | "fdncnn" | "ffdnet" | "sr" | "srmd" | "dpsr" | "plain" | "plainpatch"
      , "dataroot_H": "testsets/set5"   // path of H testing dataset
      , "dataroot_L": null              // path of L testing dataset
    }
  }

  , "netG": {
    "net_type": "msrresnet0"  // "dncnn" | "fdncnn" | "ffdnet" | "srmd" | "dpsr" | "msrresnet0" |  "msrresnet1" | "rrdb" 
    , "in_nc": 3        // input channel number
    , "out_nc": 3       // ouput channel number
    , "nc": 64          // 96 for DPSR, 128 for SRMD, 64 for DnCNN and MSRResNet
    , "nb": 16          // 12 for "srmd", 15 for "ffdnet", 20 for "dncnn", 16 for "srresnet" and "dpsr"
    , "gc": 32          // unused
    , "ng": 2           // unused
    , "reduction" : 16  // unused
    , "act_mode": "R"   // "BR" for BN+ReLU | "R" for ReLU
    , "upsample_mode": "upconv"         // "pixelshuffle" | "convtranspose" | "upconv"
    , "downsample_mode": "strideconv"   // "strideconv" | "avgpool" | "maxpool"

    , "init_type": "orthogonal"         // "orthogonal" | "normal" | "uniform" | "xavier_normal" | "xavier_uniform" | "kaiming_normal" | "kaiming_uniform"
    , "init_bn_type": "uniform"         // "uniform" | "constant"
    , "init_gain": 0.2
  }

  , "netD": {
    "net_type": "discriminator_vgg_96" // "discriminator_patchgan" | "discriminator_unet" | "discriminator_vgg_192" | "discriminator_vgg_128" | "discriminator_vgg_96"
    , "in_nc": 3
    , "base_nc": 64
    , "act_mode": "BL"                 // "BL" means BN+LeakyReLU
    , "n_layers": 3   // only for "net_type":"discriminator_patchgan"
    , "norm_type": 3  // only for "net_type":"discriminator_patchgan"  | 'batch', 'instance', 'spectral', 'batchspectral', instancespectral'

    , "init_type": "orthogonal" // "orthogonal" | "normal" | "uniform" | "xavier_normal" | "xavier_uniform" | "kaiming_normal" | "kaiming_uniform"
    , "init_bn_type": "uniform" // "uniform" | "constant"
    , "init_gain": 0.2
  }

  , "train": {
    "G_lossfn_type": "l1"    // "l1" | "l2" | "l2sum" | "l1c" | "ssim"
    , "G_lossfn_weight": 1e-2

    , "F_lossfn_type": "l1"  // "l1" | "l2"
    , "F_lossfn_weight": 1
    , "F_feature_layer": 34  // 25 | [2,7,16,25,34]
    , "F_weights": 1.0       // 1.0 | [0.1,0.1,1.0,1.0,1.0]
    , "F_use_input_norm": true
    , "F_use_range_norm": false

    , "gan_type": "ragan"    // "gan" | "ragan" | "lsgan" | "wgan" | "softplusgan"
    , "D_lossfn_weight": 5e-3

    , "E_decay": 0.999  // Exponential Moving Average for netG: set 0 to disable; default setting 0.999

    , "D_init_iters": 0

    , "G_optimizer_type": "adam"
    , "G_optimizer_lr": 1e-5
    , "G_optimizer_wd": 0

    , "D_optimizer_type": "adam"
    , "D_optimizer_lr": 1e-5
    , "D_optimizer_wd": 0

    , "G_scheduler_type": "MultiStepLR"
    , "G_scheduler_milestones": [200000, 800000, 1200000, 2000000]
    , "G_scheduler_gamma": 0.5
    , "G_optimizer_reuse": false

    , "D_scheduler_type": "MultiStepLR"
    , "D_scheduler_milestones": [200000, 800000, 1200000, 2000000]
    , "D_scheduler_gamma": 0.5
    , "D_optimizer_reuse": false

    , "G_param_strict": true
    , "D_param_strict": true
    , "E_param_strict": true

    , "checkpoint_test": 5000
    , "checkpoint_save": 5000
    , "checkpoint_print": 200
  }
}