option.py

import argparse
import template

parser = argparse.ArgumentParser(description='EDSR and MDSR')

parser.add_argument('--debug', action='store_true',
                    help='Enables debug mode')
parser.add_argument('--debug_num', type=int, default=1, 
                    help='debugging session identifier')
parser.add_argument('--template', default='.',
                    help='You can set various templates in option.py')

# Hardware specifications
parser.add_argument('--n_threads', type=int, default=6,
                    help='number of threads for data loading')
parser.add_argument('--cpu', action='store_true',
                    help='use cpu only')
parser.add_argument('--n_GPUs', type=int, default=1,
                    help='number of GPUs')
parser.add_argument('--seed', type=int, default=1,
                    help='random seed')

# Data specifications
parser.add_argument('--dir_data', type=str, default='/datadrive',
                    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('--rrl_data', type=str, default='DIV2K',
                    help='dataset to load using RRL dataloader')
parser.add_argument('--data_test', type=str, default='DIV2K',
                    help='test dataset name')
parser.add_argument('--benchmark_noise', action='store_true',
                    help='use noisy benchmark sets')
parser.add_argument('--n_train', type=int, default=790,
                    help='number of training set')
parser.add_argument('--n_val', type=int, default=10,
                    help='number of validation set')
parser.add_argument('--offset_val', type=int, default=790,
                    help='validation index offest')
parser.add_argument('--ext', type=str, default='img',
                    help='dataset file extension')
parser.add_argument('--scale', default='3',
                    help='super resolution scale')
parser.add_argument('--patch_size', type=int, default=96,
                    help='output patch size')
parser.add_argument('--patch_strategy', type=str, default='random',
                    help='strategy to pick out patches') 
parser.add_argument('--rgb_range', type=int, default=255,
                    help='maximum value of RGB')
parser.add_argument('--n_channel_in', type=int, default=3,
                    help='number of input channels for network')
parser.add_argument('--n_channel_out', type=int, default=3,
                    help='number of channels for network to output')
parser.add_argument('--interpolate', action='store_true',
                    help='bilinearly interpolate the LR image')
parser.add_argument('--noise', type=str, default='.',
                    help='Gaussian noise std.')
parser.add_argument('--chop', action='store_true',
                    help='enable memory-efficient forward')

# Model specifications
parser.add_argument('--model', default='EDSR',
                    help='model name')
parser.add_argument('--branch_num', type=int, default=1,
                    help='branch number for RRL')
parser.add_argument('--enable_branches', action='store_true',
                    help='incremental residual learning using sequential branches')
parser.add_argument('--n_branches', type=int, default=1,
                    help='number of sequential branches to train')
parser.add_argument('--train_jointly', action='store_true',
                    help='train branches jointly')
parser.add_argument('--branch_label', type=str, default='residual',
                    help='whether to predict HR (i.e b0+b1=gt) or \
                    residuals (i.e b1=gt-b0)')
parser.add_argument('--bilateral_residuals',action='store_true',
                    help='apply bilateral filter before generating residuals')
parser.add_argument('--down_feats', action='store_true',
                    help='take downsampled feature maps as input for next branch')
parser.add_argument('--half_feats', action='store_true', 
                    help='whether half the number of feats at each branch')
parser.add_argument('--half_resblocks', action='store_true',
                    help='whether half the number of resblocks at each branch')
parser.add_argument('--act', type=str, default='relu',
                    help='activation function')
parser.add_argument('--negative_slope', type=float, default=0.2,
                    help='negative slope parameter for PRelu')
parser.add_argument('--pre_train', type=str, default='.',
                    help='pre-trained model directory')
parser.add_argument('--master_branch_pretrain', type=str, default='.',
                    help='pre-trained master branch directory')
parser.add_argument('--n_resblocks', type=int, default=16,
                    help='number of residual blocks [EDSR]')
parser.add_argument('--n_denseblocks', type=int, default=16,
                    help='number of dense blocks in [DenseSkip]')                    
parser.add_argument('--n_layers', type=int, default=8,
                    help='number of layers inside a dense block [DenseSkip]')
parser.add_argument('--growth_rate', type=int, default=64,
                    help='Growth rate inside a dense block [DenseSkip]')
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('--is_sub_mean', default=True,
                    help='subtract pixel mean from the input')
parser.add_argument('--precision', type=str, default='single',
                    choices=('single', 'half'),
                    help='FP precision for test (single | half)')

# 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('--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('--lr_decay', type=int, default=200,
                    help='learning rate decay per N epochs')
parser.add_argument('--decay_type', type=str, default='step',
                    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('--beta1', type=float, default=0.9,
                    help='ADAM beta1')
parser.add_argument('--beta2', type=float, default=0.999,
                    help='ADAM beta2')
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')

# Loss specifications
parser.add_argument('--loss', type=str, default='1*L1',
                    help='loss function configuration')
#parser.add_argument('--loss', type=str, default='1*L1',
#                    help='loss function configuration')
#parser.add_argument('--loss', type=str, default='1*L1',
#                    help='loss function configuration')
parser.add_argument('--intensity_loss',action='store_true',
                    help='compute loss on intensity channel only')
parser.add_argument('--normalized_loss', action='store_true',
                    help='normalize images before computing loss')
parser.add_argument('--skip_threshold', type=float, default='1e6',
                    help='skipping batch that has large error')

# Log specifications
parser.add_argument('--save', type=str, default='test',
                    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('--print_model', action='store_true',
                    help='print model')
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_branches', action='store_true',
                    help='save outputs of each branches in IRL setup')
parser.add_argument('--save_residuals', action='store_true',
                    help='save residuals of output results')
#print("3-checkpoint")

args = parser.parse_args()
template.set_template(args)

args.scale = list(map(lambda x: int(x), args.scale.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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市溯革,隨后出現(xiàn)的幾起案子常侦,更是在濱河造成了極大的恐慌辟躏,老刑警劉巖嬉荆,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浸须,死亡現(xiàn)場(chǎng)離奇詭異移怯,居然都是意外死亡始赎,警方通過(guò)查閱死者的電腦和手機(jī)和橙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)造垛,“玉大人魔招,你說(shuō)我怎么就攤上這事∥辶桑” “怎么了办斑?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)杆逗。 經(jīng)常有香客問(wèn)我乡翅,道長(zhǎng),這世上最難降的妖魔是什么罪郊? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任蠕蚜,我火速辦了婚禮,結(jié)果婚禮上悔橄,老公的妹妹穿的比我還像新娘靶累。我一直安慰自己腺毫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布挣柬。 她就那樣靜靜地躺著潮酒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凛忿。 梳的紋絲不亂的頭發(fā)上澈灼,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音店溢,去河邊找鬼叁熔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛床牧,可吹牛的內(nèi)容都是我干的荣回。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼戈咳,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼心软!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起著蛙,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤删铃,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后踏堡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體猎唁,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年顷蟆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诫隅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡帐偎,死狀恐怖逐纬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情削樊,我是刑警寧澤豁生,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站嫉父,受9級(jí)特大地震影響沛硅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绕辖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一摇肌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仪际,春花似錦围小、人聲如沸昵骤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至框舔,卻和暖如春蹦玫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背刘绣。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工樱溉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纬凤。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓福贞,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親停士。 傳聞我的和親對(duì)象是個(gè)殘疾皇子挖帘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容