-
Notifications
You must be signed in to change notification settings - Fork 3
/
finetune_starsrgan.yml
222 lines (194 loc) · 5.13 KB
/
finetune_starsrgan.yml
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
# general settings
name: finetune_StarSRGAN_1M
model_type: MultiStarSRGANModel
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 StarSRGANModel ----------------- #
# USM the ground-truth
l1_gt_usm: True
percep_gt_usm: True
gan_gt_usm: False
degree_list: ['weak_degrade_one_stage', 'standard_degrade_one_stage', 'severe_degrade_two_stage']
degree_prob: [0.3, 0.3, 0.4]
# the degradation process of weak_degrade_one_stage
resize_prob_weak1: [0.1, 0.2, 0.7] # up, down, keep
resize_range_weak1: [0.85, 1.2]
gaussian_noise_prob_weak1: 0.5
noise_range_weak1: [1, 10]
poisson_scale_range_weak1: [0.05, 0.5]
gray_noise_prob_weak1: 0.4
jpeg_range_weak1: [90, 95]
# the degradation process of standard_degrade_one_stage
resize_prob_standard1: [0.3, 0.4, 0.3] # up, down, keep
resize_range_standard1: [0.5, 1.2]
gaussian_noise_prob_standard1: 0.5
noise_range_standard1: [1, 20]
poisson_scale_range_standard1: [0.05, 1.5]
gray_noise_prob_standard1: 0.4
jpeg_range_standard1: [50, 95]
# the first degradation process of severe_degrade_two_stage
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 of severe_degrade_two_stage
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: 320
# dataset and data loader settings
datasets:
train:
name: DF2K
type: StarSRGANDataset
dataroot_gt: datasets/DF2K
meta_info: datasets/DF2K/meta_info.txt
io_backend:
type: disk
blur_kernel_size_weak1: 21
blur_kernel_size_minimum_weak1: 7
kernel_list_weak1: [ 'iso', 'aniso' ]
kernel_prob_weak1: [ 0.65, 0.35 ]
sinc_prob_weak1: 0
blur_sigma_weak1: [ 0.2, 0.8 ]
betag_range_weak1: [ 0.5, 4 ]
betap_range_weak1: [ 1, 2 ]
blur_kernel_size_standard1: 21
blur_kernel_size_minimum_standard1: 7
kernel_list_standard1: [ 'iso', 'aniso' ]
kernel_prob_standard1: [ 0.65, 0.35 ]
sinc_prob_standard1: 0
blur_sigma_standard1: [ 0.2, 1.5 ]
betag_range_standard1: [ 0.5, 4 ]
betap_range_standard1: [ 1, 2 ]
blur_kernel_size: 21
blur_kernel_size_minimum: 7
kernel_list: [ 'iso', 'aniso']
kernel_prob: [ 0.65, 0.35]
sinc_prob: 0
blur_sigma: [0.2, 3]
betag_range: [0.5, 4]
betap_range: [1, 2]
blur_kernel_size2: 21
blur_kernel_size2_minimum: 7
kernel_list2: [ 'iso', 'aniso' ]
kernel_prob2: [ 0.65, 0.35 ]
sinc_prob2: 0
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: 4
batch_size_per_gpu: 16
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: StarSRNet
drop_out: false
network_d:
type: MultiscaleAttentionUNetDiscriminator
# path
path:
# use the pre-trained Real-ESRNet model
pretrain_network_g: experiments/train_StarSRGAN_1M/models/net_g_latest.pth
param_key_g: params_ema
strict_load_g: true
pretrain_network_d: experiments/train_StarSRGAN_1M/models/net_d_latest.pth
param_key_d: params
strict_load_d: 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: [50000, 100000, 150000, 200000, 250000, 300000, 350000]
gamma: 1
total_iter: 1000000
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 25e3
use_tb_logger: true
wandb:
project: ~
resume_id: ~
# dist training settings
dist_params:
backend: nccl
port: 29500