def parse_args()

in finetune_video.py [0:0]


def parse_args():
    def str2bool(v):
        v = v.lower()
        if v in ('yes', 'true', 't', '1'):
            return True
        elif v in ('no', 'false', 'f', '0'):
            return False
        raise ValueError('Boolean argument needs to be true or false. '
            'Instead, it is %s.' % v)

    import argparse
    parser = argparse.ArgumentParser(description='Finetuning')
    parser.register('type', 'bool', str2bool)

    ### DATA
    parser.add_argument('--dataset', default='ucf101', type=str,
                        choices=['kinetics', 'vggsound', 'kinetics_sound', 'ave', 'ucf101', 'hmdb51'],
                        help='name of dataset')
    parser.add_argument("--root_dir", type=str, default="/path/to/dataset",
                        help="root dir of dataset")
    parser.add_argument('--fold', default='1,2,3', type=str, 
                        help='fold number')
    parser.add_argument('--clip_len', default=32, type=int, metavar='N',
                        help='number of frames per clip')
    parser.add_argument('--augtype', default=1, type=int, 
                        help='augmentation type (default: 1)')
    parser.add_argument('--colorjitter', default='True', type='bool', 
                        help='color jittering as augmentations')
    parser.add_argument('--steps_bet_clips', default=1, type=int, 
                        help='number of steps between clips in video')
    parser.add_argument('--num_data_samples', default=None, type=int, 
                        help='number of samples in dataset')
    parser.add_argument('--train_clips_per_video', default=10, type=int, 
                        help='maximum number of clips per video for training')
    parser.add_argument('--val_clips_per_video', default=10, type=int, 
                        help='maximum number of clips per video for testing')
    parser.add_argument('--num_spatial_crops', default=3, type=int, 
                        help='number of spatial clips for testing')
    parser.add_argument('--test_time_cj', default='False', type='bool', 
                        help='test time CJ augmentation')
    parser.add_argument('--workers', default=0, type=int, 
                        help='number of data loading workers (default: 16)')

    ### MODEL
    parser.add_argument('--weights_path', default='', type=str,
                        help='Path to weights file',)
    parser.add_argument('--ckpt_epoch', default='0', type=str,
                        help='Epoch of model checkpoint')
    parser.add_argument('--vid_base_arch', default='r2plus1d_18', 
                        help='Video Base Arch for A-V model')
    parser.add_argument('--aud_base_arch', default='resnet9', 
                        help='Audio Base Arch for A-V model')
    parser.add_argument('--pretrained', default='False', type='bool', 
                        help='Use pre-trained models from the modelzoo')
    parser.add_argument('--use_mlp', default='True', type='bool', 
                        help='Use MLP projection head')
    parser.add_argument('--mlptype', default=0, type=int, 
                        help='MLP type (default: 0)')
    parser.add_argument('--headcount', default=10, type=int,
                        help='how many heads each modality has')
    parser.add_argument('--num_clusters', default=309, type=int,
                        help='number of clusters in last dimension')

    ### FINETUNE
    parser.add_argument('--feature_extract', default='False', type='bool', 
                        help="Use model as feature extractor")
    parser.add_argument("--use_dropout", default='False', type='bool', 
                        help='Use dropout in classifier')
    parser.add_argument('--use_bn', default='False', type='bool',
                        help='Use BN in classifier')
    parser.add_argument('--use_l2_norm', default='False', type='bool', 
                        help='Use L2-Norm in classifier')

    ### TRAINING
    parser.add_argument('--batch_size', default=32, type=int)
    parser.add_argument('--epochs', default=12, type=int, 
                        help='number of total epochs to run')
    parser.add_argument('--optim_name', default='sgd', type=str, 
                        help='Name of optimizer', choices=['sgd', 'adam'])
    parser.add_argument('--head_lr', default=0.0025, type=float, 
                        help='initial learning rate')
    parser.add_argument('--base_lr', default=0.00025, type=float, 
                        help='initial learning rate')
    parser.add_argument('--momentum', default=0.9, type=float, 
                        help='momentum')
    parser.add_argument('--weight_decay', default=0.005, type=float,
                        help='weight decay')
    parser.add_argument('--wd_base', default=5e-3, type=float)
    parser.add_argument("--use_scheduler", default='True', type='bool', 
                        help='Use LR scheduler')
    parser.add_argument('--lr_warmup_epochs', default=2, type=int, 
                        help='number of warmup epochs')
    parser.add_argument('--lr_milestones', default='6,10', type=str, 
                        help='decrease lr on milestones (epochs)')
    parser.add_argument('--lr_gamma', default=0.05, type=float, 
                        help='decrease lr by a factor of lr-gamma')
    
    ### LOGGING
    parser.add_argument('--output_dir', default='.', type=str,
                        help='path where to save')

    ### CHECKPOINTING
    parser.add_argument('--resume', default='', type=str,
                        help='resume from checkpoint')
    parser.add_argument('--start_epoch', default=0, type=int, 
                        help='start epoch')
    parser.add_argument('--test_only', type='bool', default='False', 
                        help='Only test the model')

    args = parser.parse_args()
    return args