|
- """args"""
- # Copyright 2021 Huawei Technologies Co., Ltd
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- # ============================================================================
-
- import argparse
-
- parser = argparse.ArgumentParser(description='EDSR and MDSR')
-
- parser.add_argument('--debug', action='store_true',
- help='Enables debug mode')
- parser.add_argument('--template', default='.',
- help='You can set various templates in option.py')
-
- # Hardware specifications
- parser.add_argument('--seed', type=int, default=1,
- help='random seed')
-
- # Data specifications
- parser.add_argument('--dir_data', type=str, default='/cache/data/',
- help='dataset directory')
- parser.add_argument('--dir_demo', type=str, default='../test',
- help='demo image directory')
- parser.add_argument('--data_train', type=str, default='DIV2K',
- help='train dataset name')
- parser.add_argument('--data_test', type=str, default='DIV2K',
- help='test dataset name')
- parser.add_argument('--data_range', type=str, default='1-800/801-810',
- help='train/test data range')
- parser.add_argument('--ext', type=str, default='sep',
- help='dataset file extension')
- parser.add_argument('--scale', type=str, default='4',
- help='super resolution scale')
- parser.add_argument('--patch_size', type=int, default=48,
- help='output patch size')
- parser.add_argument('--rgb_range', type=int, default=255,
- help='maximum value of RGB')
- parser.add_argument('--n_colors', type=int, default=3,
- help='number of color channels to use')
- parser.add_argument('--chop', action='store_true',
- help='enable memory-efficient forward')
- parser.add_argument('--no_augment', action='store_true',
- help='do not use data augmentation')
-
- # Model specifications
- parser.add_argument('--model', default='EDSR',
- help='model name')
- parser.add_argument('--act', type=str, default='relu',
- help='activation function')
- parser.add_argument('--pre_train', type=str, default='',
- help='pre-trained model directory')
- parser.add_argument('--extend', type=str, default='.',
- help='pre-trained model directory')
- parser.add_argument('--n_resblocks', type=int, default=16,
- help='number of residual blocks')
- parser.add_argument('--n_feats', type=int, default=64,
- help='number of feature maps')
- parser.add_argument('--res_scale', type=float, default=1,
- help='residual scaling')
- parser.add_argument('--shift_mean', default=True,
- help='subtract pixel mean from the input')
- parser.add_argument('--dilation', action='store_true',
- help='use dilated convolution')
- parser.add_argument('--precision', type=str, default='single',
- choices=('single', 'half'),
- help='FP precision for test (single | half)')
-
- # Option for Residual dense network (RDN)
- parser.add_argument('--G0', type=int, default=64,
- help='default number of filters. (Use in RDN)')
- parser.add_argument('--RDNkSize', type=int, default=3,
- help='default kernel size. (Use in RDN)')
- parser.add_argument('--RDNconfig', type=str, default='B',
- help='parameters config of RDN. (Use in RDN)')
-
- # Option for Residual channel attention network (RCAN)
- parser.add_argument('--n_resgroups', type=int, default=10,
- help='number of residual groups')
- parser.add_argument('--reduction', type=int, default=16,
- help='number of feature maps reduction')
-
- # Training specifications
- parser.add_argument('--reset', action='store_true',
- help='reset the training')
- parser.add_argument('--test_every', type=int, default=1000,
- help='do test per every N batches')
- parser.add_argument('--epochs', type=int, default=300,
- help='number of epochs to train')
- parser.add_argument('--batch_size', type=int, default=16,
- help='input batch size for training')
- parser.add_argument('--test_batch_size', type=int, default=1,
- help='input batch size for training')
- parser.add_argument('--split_batch', type=int, default=1,
- help='split the batch into smaller chunks')
- parser.add_argument('--self_ensemble', action='store_true',
- help='use self-ensemble method for test')
- parser.add_argument('--test_only', action='store_true',
- help='set this option to test the model')
- parser.add_argument('--gan_k', type=int, default=1,
- help='k value for adversarial loss')
-
- # Optimization specifications
- parser.add_argument('--lr', type=float, default=1e-4,
- help='learning rate')
- parser.add_argument('--decay', type=str, default='200',
- help='learning rate decay type')
- parser.add_argument('--gamma', type=float, default=0.5,
- help='learning rate decay factor for step decay')
- parser.add_argument('--optimizer', default='ADAM',
- choices=('SGD', 'ADAM', 'RMSprop'),
- help='optimizer to use (SGD | ADAM | RMSprop)')
- parser.add_argument('--momentum', type=float, default=0.9,
- help='SGD momentum')
- parser.add_argument('--betas', type=tuple, default=(0.9, 0.999),
- help='ADAM beta')
- parser.add_argument('--epsilon', type=float, default=1e-8,
- help='ADAM epsilon for numerical stability')
- parser.add_argument('--weight_decay', type=float, default=0,
- help='weight decay')
- parser.add_argument('--gclip', type=float, default=0,
- help='gradient clipping threshold (0 = no clipping)')
-
- # Loss specifications
- parser.add_argument('--con_loss', action='store_true')
- parser.add_argument('--loss', type=str, default='1*L1',
- help='loss function configuration')
- parser.add_argument('--skip_threshold', type=float, default='1e8',
- help='skipping batch that has large error')
-
- # Log specifications
- parser.add_argument('--save', type=str, default='/cache/results/edsr_baseline_x2/',
- help='file name to save')
- parser.add_argument('--load', type=str, default='',
- help='file name to load')
- parser.add_argument('--resume', type=int, default=0,
- help='resume from specific checkpoint')
- parser.add_argument('--save_models', action='store_true',
- help='save all intermediate models')
- parser.add_argument('--print_every', type=int, default=100,
- help='how many batches to wait before logging training status')
- parser.add_argument('--save_results', action='store_true',
- help='save output results')
- parser.add_argument('--save_gt', action='store_true',
- help='save low-resolution and high-resolution images together')
-
- parser.add_argument('--scalelr', type=int, default=0)
-
- # cloud
- parser.add_argument('--moxfile', type=int, default=1)
- parser.add_argument('--imagenet', type=int, default=0)
- parser.add_argument('--data_url', type=str, help='path to dataset')
- parser.add_argument('--train_url', type=str, help='train_dir')
- parser.add_argument('--pretrain', type=str, default='')
- parser.add_argument('--pth_path', type=str, default='')
- parser.add_argument('--load_query', type=int, default=0)
-
- # transformer
- parser.add_argument('--patch_dim', type=int, default=3)
- parser.add_argument('--num_heads', type=int, default=12)
- parser.add_argument('--num_layers', type=int, default=4)
- parser.add_argument('--dropout_rate', type=float, default=0)
- parser.add_argument('--no_norm', action='store_true')
- parser.add_argument('--post_norm', action='store_true')
- parser.add_argument('--no_mlp', action='store_true')
- parser.add_argument('--test', action='store_true')
- parser.add_argument('--chop_new', action='store_true')
- parser.add_argument('--pos_every', action='store_true')
- parser.add_argument('--no_pos', action='store_true')
- parser.add_argument('--num_queries', type=int, default=6)
- parser.add_argument('--reweight', action='store_true')
-
- # denoise
- parser.add_argument('--denoise', action='store_true')
- parser.add_argument('--sigma', type=float, default=25)
-
- # derain
- parser.add_argument('--derain', action='store_true')
- parser.add_argument('--finetune', action='store_true')
- parser.add_argument('--derain_test', type=int, default=10)
-
- # alltask
- parser.add_argument('--alltask', action='store_true')
- parser.add_argument('--task_id', type=int, default=0)
-
- # dehaze
- parser.add_argument('--dehaze', action='store_true')
- parser.add_argument('--dehaze_test', type=int, default=100)
- parser.add_argument('--indoor', action='store_true')
- parser.add_argument('--outdoor', action='store_true')
- parser.add_argument('--nochange', action='store_true')
-
- # deblur
- parser.add_argument('--deblur', action='store_true')
- parser.add_argument('--deblur_test', type=int, default=1000)
-
- # distribute
- parser.add_argument('--init_method', type=str,
- default=None, help='master address')
- parser.add_argument('--rank', type=int, default=0,
- help='Index of current task')
- parser.add_argument('--group_size', type=int, default=0,
- help='Index of current task')
- parser.add_argument('--world_size', type=int, default=1,
- help='Total number of tasks')
- parser.add_argument('--gpu', default=None, type=int,
- help='GPU id to use.')
- parser.add_argument('--dist-url', default='', type=str,
- help='url used to set up distributed training')
- parser.add_argument('--dist-backend', default='nccl', type=str,
- help='distributed backend')
- parser.add_argument('-j', '--workers', default=4, type=int, metavar='N',
- help='number of data loading workers (default: 4)')
- parser.add_argument('--distribute', action='store_true')
-
- args, unparsed = parser.parse_known_args()
-
- args.scale = [int(x) for x in args.scale.split("+")]
- args.data_train = args.data_train.split('+')
- args.data_test = args.data_test.split('+')
-
- if args.epochs == 0:
- args.epochs = 1e8
-
- for arg in vars(args):
- if vars(args)[arg] == 'True':
- vars(args)[arg] = True
- elif vars(args)[arg] == 'False':
- vars(args)[arg] = False
|