total_iters: 600000 output_dir: output_dir find_unused_parameters: True checkpoints_dir: checkpoints # tensor range for function tensor2img min_max: (0., 1.) model: name: BasicVSRModel fix_iter: 5000 lr_mult: 0.25 generator: name: BasicVSRPlusPlus mid_channels: 64 num_blocks: 7 is_low_res_input: True pixel_criterion: name: CharbonnierLoss reduction: mean dataset: train: name: RepeatDataset times: 1000 num_workers: 4 batch_size: 1 #4 gpus dataset: name: VSRVimeo90KDataset # mode: train lq_folder: data/vimeo90k/vimeo_septuplet_BD_matlabLRx4/sequences gt_folder: data/vimeo90k/vimeo_septuplet/sequences ann_file: data/vimeo90k/vimeo_septuplet/sep_trainlist.txt preprocess: - name: ReadImageSequence key: lq - name: ReadImageSequence key: gt - name: Transforms input_keys: [lq, gt] pipeline: - name: SRPairedRandomCrop gt_patch_size: 256 scale: 4 keys: [image, image] - name: PairedRandomHorizontalFlip keys: [image, image] - name: PairedRandomVerticalFlip keys: [image, image] - name: PairedRandomTransposeHW keys: [image, image] - name: TransposeSequence keys: [image, image] - name: MirrorVideoSequence - name: NormalizeSequence mean: [0., .0, 0.] std: [255., 255., 255.] keys: [image, image] test: name: VSRFolderDataset # for UDM10 dataset # lq_folder: data/udm10/BDx4 # gt_folder: data/udm10/GT lq_folder: data/Vid4/BDx4 gt_folder: data/Vid4/GT preprocess: - name: GetNeighboringFramesIdx interval_list: [1] # for UDM10 dataset # filename_tmpl: '{:04d}.png' filename_tmpl: '{:08d}.png' - name: ReadImageSequence key: lq - name: ReadImageSequence key: gt - name: Transforms input_keys: [lq, gt] pipeline: - name: TransposeSequence keys: [image, image] - name: NormalizeSequence mean: [0., .0, 0.] std: [255., 255., 255.] keys: [image, image] lr_scheduler: name: CosineAnnealingRestartLR learning_rate: !!float 1e-4 periods: [600000] restart_weights: [1] eta_min: !!float 1e-7 optimizer: name: Adam # add parameters of net_name to optim # name should in self.nets net_names: - generator beta1: 0.9 beta2: 0.99 validate: interval: 5000 save_img: false metrics: psnr: # metric name, can be arbitrary name: PSNR crop_border: 0 test_y_channel: true ssim: name: SSIM crop_border: 0 test_y_channel: true log_config: interval: 10 visiual_interval: 500 snapshot_config: interval: 5000