Esempio n. 1
0
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
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--batch_size', type=int, default=100)
    parser.add_argument('--max_epoch', type=int, default=6)
    parser.add_argument('--leaky_ReLU', type=bool, default=False)
    parser.add_argument('--decay_eta', type=bool, default=False)
    parser.add_argument('--cyclical_eta', type=bool, default=True)
    parser.add_argument('--rho', type=float, default=0.8)
    parser.add_argument('--z_scores', type=bool, default=True)
    parser.add_argument('--Lambda', type=float, default=0.01)
    parser.add_argument('--dataset',
                        type=str,
                        default='CIFAR10',
                        choices=['CIFAR10'])
    args = parser.parse_args()
    pprint(vars(args))

    dataLoader = None
    if args.dataset == 'CIFAR10':
        dataLoader = CIFAR10DataLoader()
    assert dataLoader != None

    X_train, X_test, y_train, y_test = dataLoader.load()
    prep = Proprocess(X_train)

    X_train, X_val, y_train, y_val = train_test_split(X_train,
                                                      y_train,
                                                      test_size=0.2,
                                                      random_state=42)
    if args.z_scores:
        X_train = prep.z_score(X_train).T
        X_val = prep.z_score(X_val).T

    model = MyNet(args)
    model.fit(X_train, y_train, X_val, y_val)
    model.my_plot()
Esempio n. 3
0
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)
Esempio n. 4
0
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