This class defines options used during both training and test time. It also implements several helper functions such as parsing, printing, and saving the options. It also gathers additional options defined in functions in both dataset class and model class.
| 7 | |
| 8 | |
| 9 | class BaseOptions(): |
| 10 | """This class defines options used during both training and test time. |
| 11 | |
| 12 | It also implements several helper functions such as parsing, printing, and saving the options. |
| 13 | It also gathers additional options defined in <modify_commandline_options> functions in both dataset class and model class. |
| 14 | """ |
| 15 | |
| 16 | def __init__(self): |
| 17 | """Reset the class; indicates the class hasn't been initailized""" |
| 18 | self.initialized = False |
| 19 | |
| 20 | def initialize(self, parser): |
| 21 | """Define the common options that are used in both training and test.""" |
| 22 | # basic parameters |
| 23 | parser.add_argument('--dataset_root',type=str, default='./datasets/IH256/', help='path to iHarmony4 dataset') #mia |
| 24 | parser.add_argument('--name', type=str, default='experiment_train', help='name of the experiment. It decides where to store samples and models') |
| 25 | parser.add_argument('--gpu_ids', type=str, default='0', help='gpu ids: e.g. 0 0,1,2, 0,2. use -1 for CPU') |
| 26 | parser.add_argument('--checkpoints_dir', type=str, default='./checkpoints', help='models are saved here') |
| 27 | parser.add_argument('--is_train', type=bool, default=True, help='train mode') |
| 28 | # model parameters |
| 29 | parser.add_argument('--model', type=str, default='hdnet', help='chooses which model to use. [cycle_gan | pix2pix | test | colorization]') |
| 30 | parser.add_argument('--input_nc', type=int, default=3, help='# of input image channels: 4 for concated comp and mask') #mia |
| 31 | parser.add_argument('--output_nc', type=int, default=3, help='# of output image channels: 3 for RGB and 1 for grayscale') |
| 32 | parser.add_argument('--ngf', type=int, default=32, help='# of gen filters in the last conv layer') |
| 33 | parser.add_argument('--ndf', type=int, default=64, help='# of discrim filters in the first conv layer') |
| 34 | parser.add_argument('--netD', type=str, default='basic', help='specify discriminator architecture [basic | n_layers | pixel]. The basic model is a 70x70 PatchGAN. n_layers allows you to specify the layers in the discriminator') |
| 35 | parser.add_argument('--netG', type=str, default='hdnet', help='specify generator architecture [resnet_9blocks | resnet_6blocks | unet_256 | unet_128]') |
| 36 | parser.add_argument('--n_layers_D', type=int, default=3, help='only used if netD==n_layers') |
| 37 | parser.add_argument('--normD', type=str, default='instance', help='instance normalization or batch normalization [instance | batch | none]') |
| 38 | parser.add_argument('--normG', type=str, default='RAIN', help='Regional Adaptive Normalization or batch normalization [instance | batch | none]') |
| 39 | parser.add_argument('--init_type', type=str, default='normal', help='network initialization [normal | xavier | kaiming | orthogonal]') |
| 40 | parser.add_argument('--init_gain', type=float, default=0.02, help='scaling factor for normal, xavier and orthogonal.') |
| 41 | parser.add_argument('--no_dropout', action='store_true', help='no dropout for the generator') |
| 42 | # dataset parameters |
| 43 | parser.add_argument('--dataset_mode', type=str, default='iharmony4', help='load iHarmony4 dataset') #mia |
| 44 | parser.add_argument('--serial_batches', action='store_true', help='if true, takes images in order to make batches, otherwise takes them randomly') |
| 45 | parser.add_argument('--num_threads', default=32, type=int, help='# threads for loading data') |
| 46 | parser.add_argument('--batch_size', type=int, default=12, help='input batch size') |
| 47 | parser.add_argument('--load_size', type=int, default=256, help='scale images to this size') |
| 48 | parser.add_argument('--crop_size', type=int, default=256, help='then crop to this size') |
| 49 | parser.add_argument('--max_dataset_size', type=int, default=float("inf"), help='Maximum number of samples allowed per dataset. If the dataset directory contains more than max_dataset_size, only a subset is loaded.') |
| 50 | parser.add_argument('--preprocess', type=str, default='none', help='scaling and cropping of images at load time [resize_and_crop | crop | scale_width | scale_width_and_crop | none]') |
| 51 | parser.add_argument('--display_winsize', type=int, default=256, help='display window size for both visdom and HTML') |
| 52 | # additional parameters |
| 53 | parser.add_argument('--epoch', type=str, default='latest', help='which epoch to load? set to latest to use latest cached model') |
| 54 | parser.add_argument('--load_iter', type=int, default=0, help='which iteration to load? if load_iter > 0, the code will load models by iter_[load_iter]; otherwise, the code will load models by [epoch]') |
| 55 | parser.add_argument('--verbose', action='store_true', help='if specified, print more debugging information') |
| 56 | parser.add_argument('--suffix', default='', type=str, help='customized suffix: opt.name = opt.name + suffix: e.g., {model}_{netG}_size{load_size}') |
| 57 | self.initialized = True |
| 58 | return parser |
| 59 | |
| 60 | def gather_options(self): |
| 61 | """Initialize our parser with basic options(only once). |
| 62 | Add additional model-specific and dataset-specific options. |
| 63 | These options are defined in the <modify_commandline_options> function |
| 64 | in model and dataset classes. |
| 65 | """ |
| 66 | if not self.initialized: # check if it has been initialized |
nothing calls this directly
no outgoing calls
no test coverage detected