File size: 5,218 Bytes
4079cdc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ef4dc68
4079cdc
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import argparse

def get_args_parser():
    parser = argparse.ArgumentParser('PDFNet_swinB training script', add_help=False)
    parser.add_argument('--COPY', default=True, type=bool)
    parser.add_argument('--batch_size', default=1, type=int)
    parser.add_argument('--epochs', default=100, type=int)
    parser.add_argument('--update_freq', default=1, type=int,
                        help='Number of steps to accumulate gradients when updating parameters, set to 1 to disable this feature')
    parser.add_argument('--update_half', default=False, type=bool,
                        help='update_half')
    # Model parameters
    parser.add_argument('--model', default='PDFNet_swinB', type=str, metavar='MODEL',
                        help='Name of model to train')
    parser.add_argument('--back_bone', default='PDFNet_swinB', type=str,
                        help='back_bone (default: swinB)')
    parser.add_argument('--back_bone_channels_stage1', default=128, type=int)
    parser.add_argument('--back_bone_channels_stage2', default=256, type=int)
    parser.add_argument('--back_bone_channels_stage3', default=512, type=int)
    parser.add_argument('--back_bone_channels_stage4', default=1024, type=int)
    parser.add_argument('--emb', default=128, type=int)
    parser.add_argument('--input_size', default=1024, type=int, help='images input size')
    parser.add_argument('--Crop_size', default=1024, type=int, help='images input size')
    parser.add_argument('--drop_path', type=float, default=0.1, metavar='PCT',
                        help='Drop path rate (default: 0.)')
    
    # Optimizer parameters
    parser.add_argument('--opt', default='adamw', type=str, metavar='OPTIMIZER',
                        help='Optimizer (default: "adamw"')
    parser.add_argument('--opt_eps', default=1e-8, type=float, metavar='EPSILON',
                        help='Optimizer Epsilon (default: 1e-8)')
    parser.add_argument('--opt_betas', default=None, type=float, nargs='+', metavar='BETA',
                        help='Optimizer Betas (default: None, use opt default)')
    parser.add_argument('--clip_grad', type=float, default=None, metavar='NORM',
                        help='Clip gradient norm (default: None, no clipping)')
    parser.add_argument('--momentum', type=float, default=0.9, metavar='M',
                        help='SGD momentum (default: 0.9)')
    parser.add_argument('--weight_decay', type=float, default=0.0001,
                        help='weight decay (default: 0.05)')
    
    # Learning rate schedule parameters
    parser.add_argument('--sched', default='cosine', type=str, metavar='SCHEDULER',
                        help='LR scheduler (default: "cosine"')
    parser.add_argument('--lr', type=float, default=1e-5, metavar='LR',
                        help='learning rate (default: 5e-4)')
    parser.add_argument('--warmup_lr', type=float, default=1e-5, metavar='LR',
                        help='warmup learning rate (default: 1e-6)')
    parser.add_argument('--min_lr', type=float, default=1e-5, metavar='LR',
                        help='lower lr bound for cyclic schedulers that hit 0 (1e-5)')
    parser.add_argument('--warmup_epochs', type=int, default=5, metavar='N',
                        help='epochs to warmup LR, if scheduler supports')
    parser.add_argument('--decay_epochs', type=float, default=300, metavar='N',
                        help='epoch interval to decay LR')
    parser.add_argument('--cooldown_epochs', type=int, default=0, metavar='N',
                        help='epochs to cooldown LR at min_lr, after cyclic schedule ends')
    parser.add_argument('--patience_epochs', type=int, default=10, metavar='N',
                        help='patience epochs for Plateau LR scheduler (default: 10')
    parser.add_argument('--decay_rate', '--dr', type=float, default=0.1, metavar='RATE',
                        help='LR decay rate (default: 0.1)')
    
    # * Finetuning params
    parser.add_argument('--finetune', default='', help='finetune from checkpoint')
    parser.add_argument('--finetune_epoch', default=0, type=int)
    # Dataset parameters
    parser.add_argument('--data_path', default='DATA/DIS-DATA/', type=str,
                        help='dataset path')
    parser.add_argument('--chached', default=False, type=bool,
                        help='dataset chached')
    
    parser.add_argument('--checkpoints_save_path', default='checkpoints/PDFNet', type=str,
                        help='path where to save')
    parser.add_argument('--output_dir', default='',
                        help='path where to save, empty for no saving')
    parser.add_argument('--device', default='cpu',
                        help='device to use for training / testing')
    parser.add_argument('--seed', default=0, type=int)
    parser.add_argument('--num_workers', default=8, type=int)
    parser.add_argument('--eval', default=True, type=bool,
                        help='Do evaluation epoch once after training')
    
    parser.add_argument('--eval_metric', default='F1', type=str,help='F1 or MAE')

    parser.add_argument('--DEBUG', default=False, type=bool,
                        help='DEBUG MODE')
    
    return parser