wyrde's picture
Upload 73 files
9effc03
# Reading and Operating this file
# ~ is basically Null/None/False e.t.c, you can either use ~ as the value, or comment out the line
# A commented-out line's value is typically it's default but is disabled due to it being commented out
# When a line starts with two #'s (comment line starting with #), then when un-commenting, it's intended to be disabled
# for example, under network_G everything but ESRGAN's values are commented-out, so to show which should still be
# enabled/disabled, a double-comment is used
name: sollevante # put "debug" in the name to enable debug mode, only enable to test code works!!!
use_tb_logger: true
model: srragan # srragan | sr | srgan | ppon | asrragan
scale: 4
gpu_ids:
- 0
datasets:
train:
name: sollevante-train
mode: LRHR
# high resolution / ground truth images
dataroot_HR:
- /mnt/8tb-hdd-1/datasets/sollevante/hr/train
# low resolution images. If there are missing LR images, they will be generated on the fly from HR
dataroot_LR:
- /mnt/8tb-hdd-1/datasets/sollevante/lr/train
subset_file: ~
use_shuffle: true
znorm: false # true | false // To normalize images in [-1, 1] range. Default = None (range [0,1]). Can use with activation function like tanh.
n_workers: 8 # 0 to disable CPU multithreading, or an integrer representing CPU threads to use for dataloading
batch_size: 32
HR_size: 128 #patch size. Default: 128. Needs to be coordinated with the patch size of the features network
# Color space conversion: "color" for both LR and HR, "color_LR" for LR independently, "color_HR" for HR independently
#color: y # remove for no conversion (RGB) | "y" for Y in YCbCr | "gray" to convert RGB to grayscale | "RGB" to convert gray to RGB
#color_LR: y # remove for no conversion (RGB) | "y" for Y in YCbCr | "gray" to convert RGB to grayscale | "RGB" to convert gray to RGB
#color_HR: y # remove for no conversion (RGB) | "y" for Y in YCbCr | "gray" to convert RGB to grayscale | "RGB" to convert gray to RGB
# LR and HR modifiers. Random flip LR and HR or ignore provided LRs and generate new ones on the fly with defined probability:
#rand_flip_LR_HR: false # flip LR and HR during training.
#flip_chance: 0.05 # Example: 0.05 = 5% chance of LR and HR flipping during training.
#aug_downscale: 0.2 # Example: 0.6 = 60% chance of generating LR on the fly, even if LR dataset exists
# If manually configuring on the fly generation of LR: (else, it will automatically default to Matlab-like downscale algorithm (777) when/if required
lr_downscale: true
lr_downscale_types:
# select from [0,1,2,3,4,5,777] where each number is: (scale algorithm)
# - cv2.INTER_NEAREST
# - cv2.INTER_LINEAR
# - cv2.INTER_CUBIC
# - cv2.INTER_AREA
# - cv2.INTER_LANCZOS4
# - cv2.INTER_LINEAR_EXACT
# - matlab.bicubic
- 1
- 2
- 777
# Rotations augmentations:
use_flip: true # flip lr with hr and hr with lr
use_rot: true # rotate images in 90 degree angles,
hr_rrot: false # rotate images in random degrees between -45 and 45
# Noise and blur augmentations:
lr_blur: false
lr_blur_types:
# select from: average | box | gaussian | bilateral | clean, `median` and `motion` aren't working yet
- gaussian
- clean
- clean
- clean
lr_noise: false
lr_noise_types:
# select from: gaussian | JPEG | quantize | poisson | dither | s&p | speckle | clean
- gaussian
- clean
- clean
- clean
- clean
lr_noise2: false
lr_noise_types2:
# select from: gaussian | JPEG | quantize | poisson | dither | s&p | speckle | clean
- dither
- dither
- clean
- clean
hr_noise: false
hr_noise_types:
# select from: gaussian | JPEG | quantize | poisson | dither | s&p | speckle | clean
- gaussian
- clean
- clean
- clean
- clean
# Color augmentations
#lr_fringes: true
#lr_fringes_chance: 0.4
#auto_levels: HR # "HR" | "LR" | "Both" //add auto levels to the images to expand dynamic range. Can use with SPL loss or (MS)-SSIM.
#rand_auto_levels: 0.7 # Example: 0.4 = 40% chance of adding auto levels to images on the fly
#unsharp_mask: true # add a un-sharpening mask to HR images. Can work well together with the HFEN loss function.
#rand_unsharp: 1 # Example: 0.5 = 50% chance of adding un-sharpening mask to HR images on the fly
# Augmentations for classification or (maybe) in-painting networks:
#lr_cutout: false
#lr_erasing: false
val:
name: sollevante-val
mode: LRHR
dataroot_HR:
- /mnt/8tb-hdd-1/datasets/sollevante/hr/val
dataroot_LR:
- /mnt/8tb-hdd-1/datasets/sollevante/lr/val
znorm: false # true | false // To normalize images in [-1, 1] range. Default = None (range [0,1]). Can use with activation function like tanh.
# Color space conversion: "color" for both LR and HR, "color_LR" for LR independently, "color_HR" for HR independently
#color: y # remove for no conversion (RGB) | "y" for Y in YCbCr | "gray" to convert RGB to grayscale | "RGB" to convert gray to RGB
#color_LR: y # remove for no conversion (RGB) | "y" for Y in YCbCr | "gray" to convert RGB to grayscale | "RGB" to convert gray to RGB
#color_HR: y # remove for no conversion (RGB) | "y" for Y in YCbCr | "gray" to convert RGB to grayscale | "RGB" to convert gray to RGB
#hr_crop: false
lr_downscale: false
lr_downscale_types:
# select from [0,1,2,3,4,5] where each number is: (scale algorithm)
# - cv2.INTER_NEAREST
# - cv2.INTER_LINEAR
# - cv2.INTER_CUBIC
# - cv2.INTER_AREA
# - cv2.INTER_LANCZOS4
# - cv2.INTER_LINEAR_EXACT
- 0
- 1
path:
root: /home/owner/github/BasicSR
pretrain_model_G: ../experiments/pretrained_models/RRDB_PSNR_x4.pth
resume_state: ../experiments/sollevante/training_state/140000.state
# Generator options:
network_G:
# ESRGAN:
which_model_G: RRDB_net # RRDB_net | sr_resnet
norm_type: ~
mode: CNA
nf: 64 # number of discriminator filters in the first convolution layer
nb: 23
in_nc: 3 # of input image channels: 3 for RGB and 1 for grayscale
out_nc: 3 # of output image channels: 3 for RGB and 1 for grayscale
gc: 32
group: 1
convtype: Conv2D # convolution, Conv2D | PartialConv2D
net_act: leakyrelu # network activation, swish | leakyrelu
#finalact: tanh # in testing, activation function to make outputs fit in [-1,1] range. Coordinate with znorm
# ASRGAN:
#which_model_G: asr_resnet # asr_resnet | asr_cnn
#nf: 64
# PPON:
#which_model_G: ppon
##norm_type: ~
#mode: CNA
#nf: 64
#nb: 24
#in_nc: 3
#out_nc: 3
##gc: 32
#group: 1
##convtype: Conv2D # Conv2D | PartialConv2D
# SRGAN:
#which_model_G: sr_resnet # RRDB_net | sr_resnet
#norm_type: ~
#mode: CNA
#nf: 64
#nb: 16
#in_nc: 3
#out_nc: 3
# SR:
#which_model_G: RRDB_net # RRDB_net | sr_resnet
#norm_type: ~
#mode: CNA
#nf: 64
#nb: 23
#in_nc: 3
#out_nc: 3
#gc: 32
#group: 1
# Discriminator options:
network_D:
# ESRGAN (default) | PPON
which_model_D: discriminator_vgg_128 # discriminator_vgg_128 | discriminator_vgg
norm_type: batch
act_type: leakyrelu
mode: CNA # CNA | NAC
nf: 64
in_nc: 3
# ASRGAN (feature extraction)
#which_model_D: discriminator_vgg_128_fea
#norm_type: batch
#act_type: leakyrelu
#mode: CNA # CNA | NAC
#nf: 64
#in_nc: 3
#spectral_norm: true
#self_attention: true
#max_pool: true
#poolsize: 4
# Schedulers options:
train:
lr_G: !!float 1e-4 # starting lr_g
weight_decay_G: 0
beta1_G: 0.9
lr_D: !!float 1e-4 # starting lr_d
weight_decay_D: 0
beta1_D: 0.9
# For MultiStepLR (ESRGAN, default):,
lr_scheme: MultiStepLR
lr_steps:
- 50000
- 100000
- 200000
- 300000
lr_gamma: 0.5 # lr change at every step (multiplied by)
# For StepLR_Restart (PPON):
# lr_gamma: 0.9 # lr change at every step (multiplied by)
# lr_scheme: StepLR_Restart # MultiStepLR | MultiStepLR_Restart | StepLR | StepLR_Restart | CosineAnnealingLR_Restart
# lr_step_sizes: # Steps for each restart for "StepLR_Restart"
# - 200
# - 100
# - 250
# restarts: # Restart iterations for MultiStepLR_Restart | StepLR_Restart | CosineAnnealingLR_Restart
# - 138000
# - 172500
# restart_weights: # lr_() * each weight in "restart_weights" for each restart in "restarts"
# - 1
# - 0.5
# - 0.5
## clear_state: true
# For MultiStepLR_Restart:
# lr_gamma: 0.9
# lr_scheme: MultiStepLR_Restart # MultiStepLR | MultiStepLR_Restart | StepLR | StepLR_Restart | CosineAnnealingLR_Restart
# lr_steps: # For "MultiStepLR" and "MultiStepLR_Restart"
# - 34500
# - 69000
# - 103500
# - 155250
# - 189750
# - 241500
# restarts: # Restart iterations for MultiStepLR_Restart | StepLR_Restart | CosineAnnealingLR_Restart
# - 138000
# - 172500
# restart_weights: # lr_() * each weight in "restart_weights" for each restart in "restarts"
# - 0.5
# - 0.5
## clear_state: true
# Losses:
pixel_criterion: l1 # pixel loss, l1 | l2 | cb | elastic | relativel1 | l1cosinesim
pixel_weight: !!float 1e-2 # 1e-2 | 1
feature_criterion: l1 # feature loss (VGG feature network), l1 | l2 | cb | elastic
feature_weight: 1
#dis_feature_criterion: l1 # discriminator feature loss, asrragan only, l1 | l2 | cb | elastic
#dis_feature_weight: 1
#hfen_criterion: l1 # helps in deblurring and finding edges/lines, l1 | l2 | rel_l1 | rel_l2
#hfen_weight: !!float 1e-1
#tv_type: normal # helps in denoising, reducing upscale artefacts
#tv_weight: !!float 1e-6
#tv_norm: 1 # 1 == l1 or 2 == l2. Change "tv_weight" so the l_g_tv is around 1e-02
#ssim_type: ms-ssim # ssim | ms-ssim # helps to maintain luminance, contrast and covariance between SR and HR
#ssim_weight: 1
gan_type: vanilla # vanilla | basic
gan_weight: !!float 5e-3
#lpips_weight: 1 # perceptual loss
#lpips_type: net-lin # net-lin | net
#lpips_net: squeeze # vgg | alex | squeeze
#spl_weight: !!float 1e-3 # SPL loss function. note: needs to add a cap in the generator (finalcap) or it becomes unstable
#spl_type: spl # spl | gpl | cpl
# for wgan-gp:
#D_update_ratio: 1
#D_init_iters: 0
#gp_weigth: 10
# For PPON:
#train_phase: 1 # Training starting phase, can skip the first phases
#phase1_s: 100 # -1 to skip. Need to coordinate with the LR steps. //COBranch: lr = 2e−4, decreased by the factor of 2 for every 1000 epochs (1.38e+5 iterations) 138k
#phase2_s: 200 # -1 to skip. Need to coordinate with the LR steps. //SOBranch: λ = 1e+3 (?), lr = 1e−4 and halved at every 250 epochs (3.45e+4iterations) 34.5k
#phase3_s: 5000000 # -1 to skip. Need to coordinate with the LR steps. //POBranch: η = 5e−3, lr = 1e−4 and halved at every 250 epochs (3.45e+4iterations) 34.5k
#phase4_s: 100100
# Other training options:
#finalcap: tanh # Test. Cap Generator outputs to fit in: [-1,1] range ("tanh"), rescale tanh to [0,1] range ("scaltanh"), cap ("sigmoid") or clamp ("clamp") to [0,1] range. Default = None. Coordinate with znorm.
#manual_seed: 0, # only set if you want reproducibility as it will incur a performance cut, 0 to 2^32-1
niter: !!float 5e5
val_freq: !!float 5e3
logger:
print_freq: 200
save_checkpoint_freq: !!float 5e3