-
Notifications
You must be signed in to change notification settings - Fork 1
/
parsing.py
194 lines (185 loc) · 17.5 KB
/
parsing.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
from argparse import ArgumentParser
# Generator training arguments
def train_gen_parser():
parser= ArgumentParser()
parser.add_argument( '--load_classifier', type= str, help= "Pretrained classifier weights.")
parser.add_argument( '--load_generator', type= str, default= None, help= "Pretrained generator weights.")
parser.add_argument( '--load_comparator', type= str, default= None, help= "Comparator pretrained weights.")
parser.add_argument( '--adversarial_loss', action= "store_true", default= False, help= "Use adversarial loss.")
parser.add_argument( '--pixel_loss', type= str, default= "l2_loss", help= "Pixel loss: {l2_loss (default), l1_loss, None}.")
parser.add_argument( '--feature_loss', type= str, default= None, help= "Feature loss: {None (default), l2_loss}.")
parser.add_argument( '--feat_l1_reg', type= int, default= False, help= "Enforce sparsity over the latent space.")
parser.add_argument( '--feat_l1_weight', type= float, default= 0.000001, help= "L1 feature regularization parameter.")
parser.add_argument( '--adversarial_loss_weight', type= float, default= 100, help= "Adversarial loss weight.")
parser.add_argument( '--pixel_loss_weight', type= float, default= 0.000002, help= "Pixel loss weight.")
parser.add_argument( '--feature_loss_weight', type= float, default= 0.01, help= "Feature loss weight.")
parser.add_argument( '--weights_init', action= "store_true", default= False, help= "Weight initialization.")
parser.add_argument( '--spectral_init', action= "store_true", default= False, help= "Apply spectral normalization.")
parser.add_argument( '--disc_model', type= str, default= "original", help= "Discriminator model.")
parser.add_argument( '--disc_loss_weight', type= float, default= 1, help= "Discriminator loss weight.")
parser.add_argument( '--disc_lr', type= float, default= 0.01, help= "ADAM weight for discriminative optimizer.")
parser.add_argument( '--disc_adam_betas', nargs= '+', type= float, default=( 0.9, 0.999), help= "Disc. ADAM betas.")
parser.add_argument( '--disc_adam_wd', type= float, default= 0, help= "Discriminator Adam weight decay factor.")
parser.add_argument( '--disc_labels', nargs= '+', type= float, default=( 0, 1), help= "Discriminator labels.")
parser.add_argument( '--disc_bn', action= "store_true", default= False, help= "True: Use batchnorm in the discriminator")
parser.add_argument( '--gen_lr', type= float, help= "Learn rate.")
parser.add_argument( '--gen_adam_betas', nargs= '+', type= float, default=( 0.9, 0.999), help= "Gen ADAM betas.")
parser.add_argument( '--gen_adam_wd', type= float, default= 0, help= "Gen ADAM weight decay factor.")
parser.add_argument( '--disc_normalize', action= "store_true", default= False, help= "Normalize discriminator input images.")
parser.add_argument( '--leakyrelu_factor', type= float, default= 0.2, help= "LeakyReLU factor.")
parser.add_argument( '--output_layer', type= str, default= "conv5", help= "Classifier final layer.")
parser.add_argument( '--comparator_layer', type= str, default= "conv5", help= "Comparator final layer.")
parser.add_argument( '--seed', type= int, default= None, help= "Fixed random seed. None if seed not fixed.")
parser.add_argument( '--upsample_mode', type= str, default= "nearest", help= "Upsampling method.")
parser.add_argument( '--wavelet_pooling', action= "store_true", default= False, help= "Use wavelet pooling in generator")
parser.add_argument( '--preview_path', type= str, default= None, help= "Path of preview samples.")
parser.add_argument( '--g_opt', type= str, default= 'adam', help= "Generator optimizer.")
parser.add_argument( '--d_opt', type= str, default= 'adam', help= "Discriminator optimizer.")
parser.add_argument( '--reduction', type= str, default= 'sum', help= "Reduction used to for loss computation.")
parser.add_argument( '--transform_train', type= str, default= "resize_norm", help= "Preprocessing for training set.")
parser.add_argument( '--transform_test', type= str, default= "resize_norm", help= "Preprocessing for test set.")
parser.add_argument( '--transform_final_dim', type= int, default= 224, help= "Preprocessing image size.")
parser.add_argument( '--transform_init_dim', type= int, default= 224, help= "Preprocessing image size.")
parser.add_argument( '--transform_output', type= str, default= "skip", help= "Postprocessing transformation")
parser.add_argument( '--transform_output_dim', type= int, default= 224, help= "Postprocessing size.")
parser.add_argument( '--noise_level', type= float, default= None, help= "AWGN level.")
parser.add_argument( '--stdout_dir', type= str, help= "Standard output directory.")
parser.add_argument( '--train_single_class', type= int, default= False, help= "Constraint to a single category.")
parser.add_argument( '--single_class_dataset', type= str, default= None, help= "Dataset for inliers")
parser.add_argument( '--preview_samples', type= int, default= 16, help= "Samples taken from val as preview.")
parser.add_argument( '--batch_size', type= int, default= 64, help= "Batch size.")
parser.add_argument( '--shuffle', action="store_true", default= False, help= "Number of workers.")
parser.add_argument( '--out_dir', type= str, help= "Output directory.")
parser.add_argument( '--data', type= str, help= "Data directory.")
parser.add_argument( '--arch', type= str, help= "Generator model.")
parser.add_argument( '--dataset', type= str, help= "Dataset identifier.")
parser.add_argument( '--step_lr_gamma', type= float, help= "Learn rate gamma factor.")
parser.add_argument( '--step_lr', type= int, help= "Learn rate step factor.")
parser.add_argument( '--epochs', type= int, help= "Training epochs.")
parser.add_argument( '--cp_step', type= int, default= 10, help= "Save epoch step")
parser.add_argument( '--samples', type= int, default= None, help= "Effective train/test samples (dataloader).")
parser.add_argument( '--num_workers', type= int, default= 32, help= "Number of workers.")
parser.add_argument( '--val_step', type= int, default= 10, help= "Validation step size.")
parser.add_argument( '--stdout_logger', action= "store_true", default= False, help= "Log stdout.")
return parser
# Prediction arguments
def predict_parser():
parser = ArgumentParser()
parser.add_argument( '--load_classifier', type= str, help= "Pretrained classifier weights.")
parser.add_argument( '--load_generator', type= str, help= "Pretrained generator weights.")
parser.add_argument( '--output_layer', type= str, help= "Classifier final layer.")
parser.add_argument( '--upsample_mode', type= str, help= "Upsampling method.")
parser.add_argument( '--wavelet_pooling', action= "store_true", default= False, help= "Use Wavelet pooling (skip connections).")
parser.add_argument( '--transform_test', type= str, default= "resize_norm", help= "Input preprocessing")
parser.add_argument( '--transform_final_dim', type= int, default= 224, help= "Preprocessing scaling.")
parser.add_argument( '--transform_init_dim', type= int, default= 224, help= "Preprocessing initial dimensions.")
parser.add_argument( '--transform_output', type= str, default= "skip", help= "Postprocessing scaling.")
parser.add_argument( '--infer_export', action= "store_true", default= False, help= "Export predicted images.")
parser.add_argument( '--spectral_init', action= "store_true", default= False, help= "Apply spectral normalization.")
parser.add_argument( '--compute_lpips', action= "store_true", default= False, help= "Compute LPIPS.")
parser.add_argument( '--compute_psnr', action= "store_true", default= False, help= "Compute PSNR.")
parser.add_argument( '--compute_ssim', action= "store_true", default= False, help= "Compute SSIM")
parser.add_argument( '--stdout_dir', type= str, help= "Standard output directory.")
parser.add_argument( '--out_dir', type= str, help= "Output directory.")
parser.add_argument( '--pad_edges', action= "store_true", default= False, help= "Apply NN interp. on prediction edges.")
parser.add_argument( '--pad_input', action= "store_true", default= False, help= "Pad to make image size a multiple of 224 x 224.")
parser.add_argument( '--noise_level', type= float, default= None, help= "AWGN level.")
parser.add_argument( '--reduction', type= str, default= "None", help= "Reduction method to compute loss.")
parser.add_argument( '--num_workers', type= int, default= 8, help= "Number of workers.")
parser.add_argument( '--dataset', type= str, help= "Test dataset.")
parser.add_argument( '--data', type= str, help= "Dataset path.")
parser.add_argument( '--arch', type= str, default= "alexnet", help= "Model Architecture.")
parser.add_argument( '--batch_size', type= int, default= 1, help= "Batch size.")
parser.add_argument( '--lpips_net', type= str, default= "vgg", help= "LPIPS network.")
parser.add_argument( '--seed', type= int, default= None, help= "Fixed random seed. None if seed not fixed.")
parser.add_argument( '--stdout_logger', action= "store_true", default= False, help= "Log stdout.")
return parser
# Style transfer arguments
def stylize_parser():
parser = ArgumentParser()
parser.add_argument( '--load_classifier', type= str, help= "Pretrained weights location.")
parser.add_argument( '--classifier_from_cp', action= 'store_true', default= False, help= "Load classifier from generator cp.")
parser.add_argument( '--load_conv5_generator', type= str, default= False, help= "Pretrained conv5 generator.")
parser.add_argument( '--load_conv4_generator', type= str, default= False, help= "Pretrained conv4 generator.")
parser.add_argument( '--load_conv3_generator', type= str, default= False, help= "Pretrained conv3 generator.")
parser.add_argument( '--load_conv2_generator', type= str, default= False, help= "Pretrained conv2 generator.")
parser.add_argument( '--load_conv1_generator', type= str, default= False, help= "Pretrained conv1 generator.")
parser.add_argument( '--load_comparator', type= str, default= None, help= "Comparator pretrained weights.")
parser.add_argument( '--comparator_arch', type= str, default= "vgg19", help= "Comparator architecture.")
parser.add_argument( '--output_layer', type= str, help= "Classifier final layer.")
parser.add_argument( '--transform_test', type= str, default= "resize", help= "Test set preprocessing")
parser.add_argument( '--content_transform_final_dim', type= int, default= 224, help= "Content image input size.")
parser.add_argument( '--content_transform_init_dim', type= int, default= 224, help= "Content image input size.")
parser.add_argument( '--style_transform_final_dim', type= int, default= 224, help= "Style image input size.")
parser.add_argument( '--style_transform_init_dim', type= int, default= 224, help= "Style image input size.")
parser.add_argument( '--transform_output', type= str, default= "skip", help= "Output postprocessing.")
parser.add_argument( '--transform_output_dim', type= int, default= 224, help= "Postprocessing size.")
parser.add_argument( '--spectral_init', type= int, default= True, help= "Spectral normalization.")
parser.add_argument( '--compute_lpips', type= int, default= False, help= "Compute LPIPS.")
parser.add_argument( '--stdout_dir', type= str, help= "Standard output directory.")
parser.add_argument( '--content_images', type= str, help= "Content reference image.")
parser.add_argument( '--style_images', type= str, help= "Style reference image.")
parser.add_argument( '--content_labels', type= str, default= None, help= "Content reference labels.")
parser.add_argument( '--style_labels', type= str, default= None, help= "Style reference labels.")
parser.add_argument( '--stylize_layers', nargs= '+', type= str, help= 'Layers to stylize.')
parser.add_argument( '--compare_layers', nargs= '+', type= str, help= 'Layers to compare.')
parser.add_argument( '--reduction', type= str, default= 'mean', help= "Reduction mode for loss computation.")
parser.add_argument( '--infer_export', action= "store_true", default= False, help= "Export stylized images.")
parser.add_argument( '--compute_gram', action= "store_true", default= False, help= "Compute Gram loss.")
parser.add_argument( '--compute_ssim', action= "store_true", default= False, help= "Compute SSIM.")
parser.add_argument( '--conv5_upsample_mode', type= str, default= "conv5_tconv", help= "Upsampling method for conv5 model.")
parser.add_argument( '--conv4_upsample_mode', type= str, default= None, help= "Upsampling method for conv4 model.")
parser.add_argument( '--conv3_upsample_mode', type= str, default= None, help= "Upsampling method for conv3 model.")
parser.add_argument( '--conv2_upsample_mode', type= str, default= "conv2_interp", help= "Upsampling method for conv2 model.")
parser.add_argument( '--conv1_upsample_mode', type= str, default= "conv1_interp", help= "Upsampling method for conv1 model.")
parser.add_argument( '--pad_input', action= "store_true", default= False, help= "Pad to make image size a multiple of 224 x 224.")
parser.add_argument( '--batch_size', type= int, default= 1, help= "Batch size.")
parser.add_argument( '--workers', type= int, default= 1, help= "Number of workers.")
parser.add_argument( '--arch', type= str, default= "alexnet", help= "Model architecture.")
parser.add_argument( '--dataset', type= str, default= "imagenet", help= "Dataset.")
parser.add_argument( '--out_dir', type= str, help= "Output directory.")
parser.add_argument( '--stdout_logger', action= "store_true", default= False, help= "Log stdout.")
return parser
# Anomaly detection arguments
def anomaly_parser():
parser = ArgumentParser()
parser.add_argument( '--generator_arch', type= str, default= "alexnet", help= "Generator architecture.")
parser.add_argument( '--comparator_arch', type= str, default= "alexnet", help= "Comparator architecture.")
parser.add_argument( '--data', type= str, default= "ImageNet", help= "Dataset.")
parser.add_argument( '--in_data_path', type= str, help= "Inlier dataset.")
parser.add_argument( '--load_comparator', type= str, help= "Pretrained classifier weights.")
parser.add_argument( '--load_classifier', type= str, help= "Pretrained comparator weights.")
parser.add_argument( '--load_generator', type= str, help= "Pretrained generator weights.")
parser.add_argument( '--out_dir', type= str, help= "Output directory.")
parser.add_argument( '--upsample_mode', type= str, help= "Upsample strategy.")
parser.add_argument( '--batch_size', type= int, default= 1, help= "Batch size.")
parser.add_argument( '--batch_limit', type= int, default= False, help= "Limit batches in dataloader.")
parser.add_argument( '--output_layer', type= str, default= "conv5", help= "Model final layer.")
parser.add_argument( '--comparator_layer', type= str, default= "conv5", help= "Comparator final layer.")
parser.add_argument( '--num_workers', type= int, default= 32, help= "Number of workers.")
parser.add_argument( '--step_size', type= float, default= 0.1, help= "Step size.")
parser.add_argument( '--iterations', type= int, default= 2048, help= "Number of iterations.")
parser.add_argument( '--seed', type= int, default= None, help= "Fixed random seed.")
parser.add_argument( '--sched_step', type= int, default= 512, help= "Scheduler number of steps.")
parser.add_argument( '--sched_gamma', type= float, default= 0.1, help= "Scheduler decreasing factor per step.")
parser.add_argument( '--spectral_init', action= "store_true", default= False, help= "Apply spectral normalization.")
parser.add_argument( '--optimizer', type= str, default= "sgd_lambda", help= "Optimizer.")
parser.add_argument( '--reduction', type= str, default= 'sum', help= "Reduction used for loss computation.")
parser.add_argument( '--stdout_dir', type= str, help= "Standard output directory.")
parser.add_argument( '--transform_test', type= str, default= "resize_norm", help= "Test set preprocessing.")
parser.add_argument( '--transform_final_dim', type= int, default= 224, help= "Preprocessing size")
parser.add_argument( '--transform_init_dim', type= int, default= 224, help= "Preprocessing size")
parser.add_argument( '--transform_output', type= str, default= "skip", help= "Postprocessing transformation.")
parser.add_argument( '--variable', type= str, default= "feature", help= "Opimization variable.")
parser.add_argument( '--act_reference', type= str, default= "gtruth", help= "Feature reference.")
parser.add_argument( '--shuffle', default= True, action= 'store_true', help= "Shuffle dataset.")
parser.add_argument( '--randn_init', type= int, default= True, help= "Random variable initialization.")
parser.add_argument( '--in_class_dataset', type= str, default= None, help= "Inlier dataset.")
parser.add_argument( '--in_samples', type= int, default= False, help= "Number of inlier samples.")
parser.add_argument( '--one_vs_all', type= int, default= True, help= "one vs. all anomaly detection.")
parser.add_argument( '--export_output', action= "store_true", default= False, help= "Export output images.")
parser.add_argument( '--feature_loss_weight', type= float, default= None, help= "Feature loss weight.")
parser.add_argument( '--pixel_loss_weight', type= float, default= None, help= "Pixel loss weight.")
parser.add_argument( '--random_samples', type= int, default= False, help= "Pick random training samples.")
parser.add_argument( '--stdout_logger', action= "store_true", default= False, help= "Log stdout.")
return parser