def get_args(): parser = argparse.ArgumentParser() parser.add_argument('--dataset', type=str, default='MiniImageNet', choices=['MiniImageNet', 'TieredImagenet']) parser.add_argument('--backbone_class', type=str, default='Res12', choices=['ConvNet', 'ConvAttNet', 'Res12', 'Res18', 'ResNest12', 'SAN']) parser.add_argument('--query', type=int, default=15) parser.add_argument('--label-smoothing', type=float, default=0.0, help='label-smoothing (default eta: 0.0)') parser.add_argument('--mixup', type=float, default=0.0, help='mixup (default eta: 0.0)') parser.add_argument('--rand-aug', action='store_true', default=False, help='random augment') parser.add_argument('--augment', type=str, default='none') parser.add_argument('--batch_size', type=int, default=32) parser.add_argument('--max_epoch', type=int, default=2) parser.add_argument('--lr', type=float, default=0.0008) parser.add_argument('--lr_scheduler', type=str, default='cosine', help='learning rate scheduler (default: cos)') parser.add_argument('--step', type=str, default='[2,3,4,5]', help='Decrease learning rate at these epochs.') parser.add_argument('--gamma', type=float, default=0.1) parser.add_argument('--no-bn-wd', action='store_true', default=False, help='no bias decay') parser.add_argument('--warmup-epochs', type=int, default=0, help='number of warmup epochs (default: 0)') parser.add_argument('--weight-decay', type=float, default=1e-4, help='SGD weight decay (default: 1e-4)') parser.add_argument('--gpu', type=str, default='1') parser.add_argument('--resume', action='store_true', default=False) parser.add_argument('--finetune', action='store_true', default=False) parser.add_argument('--samples_per_class', type=int, default=50) parser.add_argument('--num_test_episodes', type=int, default=2000) parser.add_argument('--save_dir', type=str, default='./checkpoints') parser.add_argument('--init_weights', type=str, default='./checkpoints/best/Res12-pre.pth') parser.add_argument('--test_size', type=int, default=84) parser.add_argument('--eval_interval', type=int, default=1) parser.add_argument('--start', type=int, default=84) parser.add_argument('--end', type=int, default=168) args = parser.parse_args() args.orig_imsize = -1 pprint(vars(args)) set_gpu(args.gpu) return args
import numpy as np import torch import os import json from model.trainer.fsl_trainer import FSLTrainer from model.utils import ( pprint, set_gpu, get_command_line_parser, postprocess_args, ) # from ipdb import launch_ipdb_on_exception if __name__ == '__main__': parser = get_command_line_parser() args = postprocess_args(parser.parse_args()) # with launch_ipdb_on_exception(): pprint(vars(args)) print('Number device: ', torch.cuda.device_count()) set_gpu(args.gpu) trainer = FSLTrainer(args) # trainer.train() trainer.evaluate_test() trainer.final_record() print(args.save_path)
def get_args(): parser = argparse.ArgumentParser() parser.add_argument('--dataset', type=str, default='MiniImageNet', choices=['MiniImageNet', 'TieredImagenet']) parser.add_argument('--backbone_class', type=str, default='ConvNet', choices=[ 'ConvNet', 'ConvAttNet', 'Res12', 'Res18', 'ResNest12', 'SAN' ]) parser.add_argument('--query', type=int, default=15) parser.add_argument('--label-smoothing', type=float, default=0.0, help='label-smoothing (default eta: 0.0)') parser.add_argument('--mixup', type=float, default=0.0, help='mixup (default eta: 0.0)') parser.add_argument('--rand-aug', action='store_true', default=False, help='random augment') parser.add_argument('--augment', type=str, default='none') parser.add_argument('--batch_size', type=int, default=32) parser.add_argument('--max_epoch', type=int, default=500) parser.add_argument('--lr', type=float, default=0.1) parser.add_argument('--lr_scheduler', type=str, default='multistep', help='learning rate scheduler (default: cos)') parser.add_argument('--step', type=str, default='[2,3,4,5]', help='Decrease learning rate at these epochs.') parser.add_argument('--gamma', type=float, default=0.1) parser.add_argument('--no-bn-wd', action='store_true', default=False, help='no bias decay') parser.add_argument('--warmup-epochs', type=int, default=5, help='number of warmup epochs (default: 0)') parser.add_argument('--weight-decay', type=float, default=1e-4, help='SGD weight decay (default: 1e-4)') parser.add_argument('--gpu', type=str, default='0') parser.add_argument('--resume', action='store_true', default=False) parser.add_argument('--finetune', action='store_true', default=False) parser.add_argument('--samples_per_class', type=int, default=50) parser.add_argument('--save_dir', type=str, default='./checkpoints') args = parser.parse_args() args.orig_imsize = -1 pprint(vars(args)) set_gpu(args.gpu) save_path1 = '-'.join(['PreTrain', args.dataset, args.backbone_class]) save_path1 += 'LS{}MX{}'.format(args.label_smoothing, args.mixup) if args.lr_scheduler == 'cosine': save_path2 = 'Bsz{}Epoch-{}-Cos-lr{}decay{}'.format( args.batch_size, args.max_epoch, args.lr, args.weight_decay) elif args.lr_scheduler == 'step': save_path2 = 'Bsz{}Epoch-{}-Step-lr{}-{}-{}decay{}'.format( args.batch_size, args.max_epoch, args.lr, args.step, args.gamma, args.weight_decay) elif args.lr_scheduler == 'multistep': save_path2 = 'Bsz{}Epoch-{}-MultiStep-lr{}-{}-{}decay{}'.format( args.batch_size, args.max_epoch, args.lr, args.step, args.gamma, args.weight_decay) else: raise ValueError('No Such Schedule') if args.warmup_epochs > 0: save_path2 += 'Warmup{}'.format(args.warmup_epochs) if args.rand_aug: save_path2 += '-RandAug' if args.no_bn_wd: save_path2 += '-no-bn-wd' args.save_path = osp.join(save_path1, save_path2) if not os.path.exists(os.path.join(args.save_dir, save_path1)): os.mkdir(os.path.join(args.save_dir, save_path1)) return args
def get_args(): parser = argparse.ArgumentParser() # Basic Parameters parser.add_argument('--dataset', type=str, default='SHHB', choices=['SHHA', 'SHHB', 'cdpeople', 'cdvehicle']) parser.add_argument( '--backbone_class', type=str, default='vgg19', choices=['VGG16', 'Res12', 'Res18', 'resnet18', 'pretrain', 'vgg19']) # Optimization Parameters parser.add_argument('--max_epoch', type=int, default=500) parser.add_argument('--lr', type=float, default=0.0001) parser.add_argument('--init_weights', type=str, default=None) parser.add_argument('--batch_size', type=int, default=8) parser.add_argument('--image_size', type=int, default=225) parser.add_argument('--prefetch', type=int, default=16) parser.add_argument('--seed', type=int, default=3035) parser.add_argument('--lambda_reg', type=float, default=0.1) # for video parser.add_argument('--seg_len', type=int, default=3) # Model Parameters parser.add_argument('--model_type', type=str, default='SACANet', choices=[ 'MCNN', 'AlexNet', 'VGG', 'VGG_DECODER', 'Res50', 'Res101', 'SACANet' ]) # Other Parameters parser.add_argument('--gpu', default='0') parser.add_argument('--LOG_PARA', type=float, default=100) #100 args, unknown_args = parser.parse_known_args() set_gpu(args.gpu) save_path1 = '{}-{}-{}'.format(args.dataset, args.model_type, args.backbone_class) save_path2 = '_'.join([ str(args.lr), str(args.batch_size), str(args.max_epoch), datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") ]) args.init_path = os.path.join('./saves/initialization', 'resnet18.pth') args.pretrain_path = os.path.join('./saves') args.save_path1 = os.path.join('./exp_log/', save_path1) args.save_path2 = os.path.join('./exp_log/', save_path1, save_path2) create_exp_dir(args.save_path1) create_exp_dir(args.save_path2) return args