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