def parse_args(): parser = argparse.ArgumentParser() parser.add_argument('--arch', type=str) parser.add_argument('--config', type=str) parser.add_argument('--test_style', type=str, default='microsoft') # model config (VGG) parser.add_argument('--n_channels', type=str) parser.add_argument('--n_layers', type=str) parser.add_argument('--use_bn', type=str2bool) # parser.add_argument('--base_channels', type=int) parser.add_argument('--block_type', type=str) parser.add_argument('--depth', type=int) # model config (ResNet-preact) parser.add_argument('--remove_first_relu', type=str2bool) parser.add_argument('--add_last_bn', type=str2bool) parser.add_argument('--preact_stage', type=str) # model config (WRN) parser.add_argument('--widening_factor', type=int) # model config (DenseNet) parser.add_argument('--growth_rate', type=int) parser.add_argument('--compression_rate', type=float) # model config (WRN, DenseNet) parser.add_argument('--drop_rate', type=float) # model config (PyramidNet) parser.add_argument('--pyramid_alpha', type=int) # model config (ResNeXt) parser.add_argument('--cardinality', type=int) # model config (shake-shake) parser.add_argument('--shake_forward', type=str2bool) parser.add_argument('--shake_backward', type=str2bool) parser.add_argument('--shake_image', type=str2bool) # model config (SENet) parser.add_argument('--se_reduction', type=int) parser.add_argument('--outdir', type=str, required=True) parser.add_argument('--seed', type=int, default=17) parser.add_argument('--test_first', type=str2bool, default=True) parser.add_argument('--gpu', type=str, default='0') # TensorBoard configuration parser.add_argument('--tensorboard', dest='tensorboard', action='store_true', default=True) parser.add_argument('--no-tensorboard', dest='tensorboard', action='store_false') parser.add_argument('--tensorboard_train_images', action='store_true') parser.add_argument('--tensorboard_test_images', action='store_true') parser.add_argument('--tensorboard_model_params', action='store_true') # configuration of optimizer parser.add_argument('--epochs', type=int) parser.add_argument('--batch_size', type=int) parser.add_argument('--optimizer', type=str, choices=['sgd', 'adam']) parser.add_argument('--base_lr', type=float) parser.add_argument('--weight_decay', type=float) # configuration for SGD parser.add_argument('--momentum', type=float) parser.add_argument('--nesterov', type=str2bool) # configuration for learning rate scheduler parser.add_argument('--scheduler', type=str, choices=['none', 'multistep', 'cosine']) # configuration for multi-step scheduler] parser.add_argument('--milestones', type=str) parser.add_argument('--lr_decay', type=float) # configuration for cosine-annealing scheduler] parser.add_argument('--lr_min', type=float, default=0) # configuration for Adam parser.add_argument('--betas', type=str) # configuration of data loader parser.add_argument( '--dataset', type=str, default='Icons', choices=['Icons', 'CIFAR10', 'CIFAR100', 'MNIST', 'FashionMNIST']) parser.add_argument('--num_workers', type=int, default=4) # cutout configuration parser.add_argument('--use_cutout', action='store_true', default=False) parser.add_argument('--cutout_size', type=int, default=16) parser.add_argument('--cutout_prob', type=float, default=1) parser.add_argument('--cutout_inside', action='store_true', default=False) # random erasing configuration parser.add_argument('--use_random_erasing', action='store_true', default=False) parser.add_argument('--random_erasing_prob', type=float, default=0.5) parser.add_argument('--random_erasing_area_ratio_range', type=str, default='[0.02, 0.4]') parser.add_argument('--random_erasing_min_aspect_ratio', type=float, default=0.3) parser.add_argument('--random_erasing_max_attempt', type=int, default=20) # mixup configuration parser.add_argument('--use_mixup', action='store_true', default=False) parser.add_argument('--mixup_alpha', type=float, default=1) args = parser.parse_args() if not is_tensorboard_available: args.tensorboard = False print(args) config = get_config(args) return config
def parse_args(): parser = argparse.ArgumentParser() parser.add_argument('--arch', type=str) parser.add_argument('--config', type=str) # model config (VGG) parser.add_argument('--n_channels', type=str) parser.add_argument('--n_layers', type=str) parser.add_argument('--use_bn', type=str2bool) # parser.add_argument('--base_channels', type=int) parser.add_argument('--block_type', type=str) parser.add_argument('--depth', type=int) # model config (ResNet-preact) parser.add_argument('--remove_first_relu', type=str2bool) parser.add_argument('--add_last_bn', type=str2bool) parser.add_argument('--preact_stage', type=str) # model config (WRN) parser.add_argument('--widening_factor', type=int) # model config (DenseNet) parser.add_argument('--growth_rate', type=int) parser.add_argument('--compression_rate', type=float) # model config (WRN, DenseNet) parser.add_argument('--drop_rate', type=float) # model config (PyramidNet) parser.add_argument('--pyramid_alpha', type=int) # model config (ResNeXt) parser.add_argument('--cardinality', type=int) # model config (shake-shake) parser.add_argument('--shake_forward', type=str2bool) parser.add_argument('--shake_backward', type=str2bool) parser.add_argument('--shake_image', type=str2bool) # model config (SENet) parser.add_argument('--se_reduction', type=int) parser.add_argument('--outdir', type=str, required=True) parser.add_argument('--seed', type=int, default=17) parser.add_argument('--test_first', type=str2bool, default=True) parser.add_argument('--device', type=str, default='cuda') # TensorBoard configuration parser.add_argument( '--tensorboard', dest='tensorboard', action='store_true', default=True) parser.add_argument( '--no-tensorboard', dest='tensorboard', action='store_false') parser.add_argument('--tensorboard_train_images', action='store_true') parser.add_argument('--tensorboard_test_images', action='store_true') parser.add_argument('--tensorboard_model_params', action='store_true') # configuration of optimizer parser.add_argument('--epochs', type=int) parser.add_argument('--batch_size', type=int) parser.add_argument( '--optimizer', type=str, choices=['sgd', 'adam', 'lars']) parser.add_argument('--gradient_clip', type=float) parser.add_argument('--base_lr', type=float) parser.add_argument('--weight_decay', type=float) # configuration for SGD parser.add_argument('--momentum', type=float) parser.add_argument('--nesterov', type=str2bool) # configuration for learning rate scheduler parser.add_argument( '--scheduler', type=str, choices=['none', 'multistep', 'cosine', 'sgdr']) # configuration for multi-step scheduler] parser.add_argument('--milestones', type=str) parser.add_argument('--lr_decay', type=float) # configuration for cosine-annealing scheduler and SGDR scheduler parser.add_argument('--lr_min', type=float, default=0) # configuration for SGDR scheduler parser.add_argument('--T0', type=int) parser.add_argument('--Tmult', type=int) # configuration for Adam parser.add_argument('--betas', type=str) # configuration for LARS parser.add_argument('--lars_eps', type=float, default=1e-9) parser.add_argument('--lars_thresh', type=float, default=1e-2) # configuration of data loader parser.add_argument( '--dataset', type=str, default='CIFAR10', choices=['CIFAR10', 'CIFAR100', 'MNIST', 'FashionMNIST', 'KMNIST', 'K49']) parser.add_argument('--num_workers', type=int, default=7) # standard data augmentation parser.add_argument('--use_random_crop', type=str2bool) parser.add_argument('--random_crop_padding', type=int, default=4) parser.add_argument('--use_horizontal_flip', type=str2bool) # (dual-)cutout configuration parser.add_argument('--use_cutout', action='store_true', default=False) parser.add_argument( '--use_dual_cutout', action='store_true', default=False) parser.add_argument('--cutout_size', type=int, default=16) parser.add_argument('--cutout_prob', type=float, default=1) parser.add_argument('--cutout_inside', action='store_true', default=False) parser.add_argument('--dual_cutout_alpha', type=float, default=0.1) # random erasing configuration parser.add_argument( '--use_random_erasing', action='store_true', default=False) parser.add_argument('--random_erasing_prob', type=float, default=0.5) parser.add_argument( '--random_erasing_area_ratio_range', type=str, default='[0.02, 0.4]') parser.add_argument( '--random_erasing_min_aspect_ratio', type=float, default=0.3) parser.add_argument('--random_erasing_max_attempt', type=int, default=20) # mixup configuration parser.add_argument('--use_mixup', action='store_true', default=False) parser.add_argument('--mixup_alpha', type=float, default=1) # RICAP configuration parser.add_argument('--use_ricap', action='store_true', default=False) parser.add_argument('--ricap_beta', type=float, default=0.3) # label smoothing configuration parser.add_argument( '--use_label_smoothing', action='store_true', default=False) parser.add_argument('--label_smoothing_epsilon', type=float, default=0.1) # fp16 parser.add_argument('--fp16', action='store_true') args = parser.parse_args() if not is_tensorboard_available: args.tensorboard = False config = get_config(args) return config
def parse_args(): parser = argparse.ArgumentParser() parser.add_argument('--arch', type=str) parser.add_argument('--config', type=str) # model config (VGG) parser.add_argument('--n_channels', type=str) parser.add_argument('--n_layers', type=str) parser.add_argument('--use_bn', type=str2bool) # parser.add_argument('--base_channels', type=int) parser.add_argument('--block_type', type=str) parser.add_argument('--depth', type=int) # model config (ResNet-preact) parser.add_argument('--remove_first_relu', type=str2bool) parser.add_argument('--add_last_bn', type=str2bool) parser.add_argument('--preact_stage', type=str) # model config (WRN) parser.add_argument('--widening_factor', type=int) # model config (DenseNet) parser.add_argument('--growth_rate', type=int) parser.add_argument('--compression_rate', type=float) # model config (WRN, DenseNet) parser.add_argument('--drop_rate', type=float) # model config (PyramidNet) parser.add_argument('--pyramid_alpha', type=int) # model config (ResNeXt) parser.add_argument('--cardinality', type=int) # model config (shake-shake) parser.add_argument('--shake_forward', type=str2bool) parser.add_argument('--shake_backward', type=str2bool) parser.add_argument('--shake_image', type=str2bool) # model config (SENet) parser.add_argument('--se_reduction', type=int) parser.add_argument('--outdir', type=str, required=False) parser.add_argument('--seed', type=int, default=17) parser.add_argument('--test_first', type=str2bool, default=True) parser.add_argument('--gpu', type=str, default='0') # -1 for CPU # TensorBoard configuration parser.add_argument( '--tensorboard', dest='tensorboard', action='store_true', default=True) parser.add_argument( '--no-tensorboard', dest='tensorboard', action='store_false') parser.add_argument('--tensorboard_train_images', action='store_true') parser.add_argument('--tensorboard_test_images', action='store_true') parser.add_argument('--tensorboard_model_params', action='store_true') # configuration of optimizer parser.add_argument('--epochs', type=int) parser.add_argument('--batch_size', type=int) parser.add_argument('--optimizer', type=str, choices=['sgd', 'adam']) parser.add_argument('--base_lr', type=float) parser.add_argument('--weight_decay', type=float) # configuration for SGD parser.add_argument('--momentum', type=float) parser.add_argument('--nesterov', type=str2bool) # configuration for learning rate scheduler parser.add_argument( '--scheduler', type=str, choices=['none', 'multistep', 'cosine']) # configuration for multi-step scheduler] parser.add_argument('--milestones', type=str) parser.add_argument('--lr_decay', type=float) # configuration for cosine-annealing scheduler] parser.add_argument('--lr_min', type=float, default=0) # configuration for Adam parser.add_argument('--betas', type=str) # configuration of data loader parser.add_argument( '--dataset', type=str, default='CIFAR10', choices=['CIFAR10', 'CIFAR10H']) parser.add_argument('--num_workers', type=int, default=7) # cutout configuration parser.add_argument('--use_cutout', action='store_true', default=False) parser.add_argument('--cutout_size', type=int, default=16) parser.add_argument('--cutout_prob', type=float, default=1) parser.add_argument('--cutout_inside', action='store_true', default=False) # random erasing configuration parser.add_argument( '--use_random_erasing', action='store_true', default=False) parser.add_argument('--random_erasing_prob', type=float, default=0.5) parser.add_argument( '--random_erasing_area_ratio_range', type=str, default='[0.02, 0.4]') parser.add_argument( '--random_erasing_min_aspect_ratio', type=float, default=0.3) parser.add_argument('--random_erasing_max_attempt', type=int, default=20) # mixup configuration parser.add_argument('--use_mixup', action='store_true', default=False) parser.add_argument('--mixup_alpha', type=float, default=1) # previous model weights to load if any parser.add_argument('--resume', type=str) # whether to tune to human labels parser.add_argument('--human_tune', action='store_true', default=False) # where to save the loss/accuracy for c10h to a csv file parser.add_argument('--c10h_scores_outdir', type=str, default='tmp') # c10h scores save interval (in epochs) parser.add_argument('--c10h_save_interval', type=int, default=1) # how much of the data to use use for test for c10h training parser.add_argument('--c10h_testsplit_percent', type=float, default=0.1) # seed for splitting the c10h data into train/test parser.add_argument('--c10h_datasplit_seed', type=int, default=999) # whether to use the cifar10 labels for the human test set (CONTROL) parser.add_argument('--nonhuman_control', type=str2bool, default=False) # whether to sample from the human labels to get one-hot samples parser.add_argument('--c10h_sample', action='store_true', default=False) # whether to save to out_dir parser.add_argument('--no_output', action='store_true', default=False) # to test the loaded model and don't train parser.add_argument('--test_only', action='store_true', default=False) args = parser.parse_args() if not is_tensorboard_available: args.tensorboard = False config = get_config(args) return config