63 lines
4.5 KiB
Python
63 lines
4.5 KiB
Python
import argparse
|
|
class Options():
|
|
def __init__(self):
|
|
self.parser=argparse.ArgumentParser()
|
|
# data loader related
|
|
self.parser.add_argument('--data_root', type=str, default='../MT-Dataset/images', help='path of data')
|
|
self.parser.add_argument('--phase', type=str, default='train', help='phase for train or test')
|
|
self.parser.add_argument('--input_dim', type=int, default=3, help='input_dim')
|
|
self.parser.add_argument('--output_dim', type=int, default=3, help='output_dim')
|
|
self.parser.add_argument('--semantic_dim', type=int, default=10, help='semantic_dim')
|
|
|
|
self.parser.add_argument('--batch_size', type=int, default=1, help='batch size')
|
|
self.parser.add_argument('--resize_size', type=int, default=286, help='resized image size for training')
|
|
self.parser.add_argument('--crop_size', type=int, default=256, help='cropped image size for training')
|
|
self.parser.add_argument('--flip', type=bool, default=True, help='specified if flipping')
|
|
self.parser.add_argument('--nThreads', type=int, default=4, help='# of threads for data loader')
|
|
|
|
# log related
|
|
self.parser.add_argument('--name', type=str, default='CSD-MT', help='folder name to save outputs')
|
|
self.parser.add_argument('--log_dir', type=str, default='./logs', help='path for saving display results')
|
|
self.parser.add_argument('--img_dir', type=str, default='./imgs', help='path for saving result images')
|
|
self.parser.add_argument('--model_dir', type=str, default='./weights', help='path for saving result models')
|
|
self.parser.add_argument('--log_freq', type=int, default=10, help='freq (iteration) of log')
|
|
self.parser.add_argument('--img_save_freq', type=int, default=1, help='freq (epoch) of saving images')
|
|
self.parser.add_argument('--model_save_freq', type=int, default=50, help='freq (epoch) of saving models')
|
|
|
|
# weight
|
|
self.parser.add_argument('--weight_self_recL1', type=float, default=10, help='weight_self_recL1')
|
|
self.parser.add_argument('--weight_cycleL1', type=float, default=10, help='weight_cycleL1')
|
|
self.parser.add_argument('--weight_back', type=float, default=5, help='weight_back')
|
|
self.parser.add_argument('--weight_contrastive', type=float, default=1, help='weight_contrastive')
|
|
self.parser.add_argument('--weight_identity', type=float, default=0.1, help='weight_identity')
|
|
self.parser.add_argument('--weight_semantic', type=float, default=0, help='weight_semantic')
|
|
self.parser.add_argument('--weight_adv', type=float, default=2, help='weight_adv')
|
|
self.parser.add_argument('--weight_corr', type=float, default=1, help='weight_corr')
|
|
|
|
|
|
# training related
|
|
# discriminator
|
|
self.parser.add_argument('--dis_scale', type=int, default=3, help='scale of discriminator')
|
|
self.parser.add_argument('--dis_norm', type=str, default='None',
|
|
help='normalization layer in discriminator [None, Instance]')
|
|
self.parser.add_argument('--dis_sn', type=bool, default=True,
|
|
help='use spectral normalization in discriminator')
|
|
# generator
|
|
self.parser.add_argument('--G_sn', type=bool,default=True, help='use spectral normalization in generator')
|
|
self.parser.add_argument('--gan_mode', type=str, default='original', help='gan_mode')
|
|
|
|
self.parser.add_argument('--gpu', type=int, default=0, help='gpu: e.g. 0 ,use -1 for CPU')
|
|
self.parser.add_argument('--lr', type=float, default=0.0002, help='learning rate of discriminator')
|
|
self.parser.add_argument('--lr_policy', type=str, default='lambda', help='type of learn rate decay')
|
|
self.parser.add_argument('--init_type', type=str, default='normal', help='init_type [normal, xavier, kaiming, orthogonal]')
|
|
self.parser.add_argument('--n_ep', type=int, default=500, help='number of epochs')
|
|
self.parser.add_argument('--n_ep_decay', type=int, default=250, help='epoch start decay learning rate, set -1 if no decay')
|
|
self.parser.add_argument('--resume', type=str, default=None, help='specified the dir of saved models for resume the training')
|
|
|
|
def parse(self):
|
|
self.opt = self.parser.parse_args()
|
|
args = vars(self.opt)
|
|
print('\n--- load options ---')
|
|
for name, value in sorted(args.items()):
|
|
print('%s: %s' % (str(name), str(value)))
|
|
return self.opt |