| 36 | |
| 37 | |
| 38 | def parse_args(): |
| 39 | import argparse |
| 40 | |
| 41 | config_parser = parser = argparse.ArgumentParser(description='Training Config', add_help=False) |
| 42 | parser.add_argument('-c', '--config', default='', type=str, metavar='FILE', |
| 43 | help='YAML config file specifying default arguments') |
| 44 | |
| 45 | parser = argparse.ArgumentParser(description='PyTorch Classification Training') |
| 46 | |
| 47 | parser.add_argument('--model', default='max_former', help='model') |
| 48 | parser.add_argument('--dataset', default='cifar10dvs', help='dataset') |
| 49 | parser.add_argument('--num-classes', type=int, default=10, metavar='N', |
| 50 | help='number of label classes (default: 10)') |
| 51 | parser.add_argument('--data-path', default='', help='dataset') |
| 52 | parser.add_argument('--device', default='cuda:0', help='device') |
| 53 | parser.add_argument('-b', '--batch-size', default=16, type=int) |
| 54 | parser.add_argument('-j', '--workers', default=4, type=int, metavar='N', |
| 55 | help='number of data loading workers (default: 4)') |
| 56 | |
| 57 | parser.add_argument('--print-freq', default=256, type=int, help='print frequency') |
| 58 | parser.add_argument('--output-dir', default='./logs', help='path where to save') |
| 59 | parser.add_argument('--resume', default='', help='resume from checkpoint') |
| 60 | |
| 61 | parser.add_argument("--sync-bn", dest="sync_bn", help="Use sync batch norm", action="store_true", ) |
| 62 | parser.add_argument( "--test-only", dest="test_only", help="Only test the model", action="store_true",) |
| 63 | |
| 64 | # Mixed precision training parameters |
| 65 | parser.add_argument('--amp', default=True, action='store_true', |
| 66 | help='Use AMP training') |
| 67 | |
| 68 | |
| 69 | # distributed training parameters |
| 70 | parser.add_argument('--world-size', default=1, type=int, |
| 71 | help='number of distributed processes') |
| 72 | parser.add_argument('--dist-url', default='env://', help='url used to set up distributed training') |
| 73 | |
| 74 | parser.add_argument('--T', default=16, type=int, help='simulation steps') |
| 75 | |
| 76 | # Optimizer Parameters |
| 77 | parser.add_argument('--opt', default='adamw', type=str, metavar="OPTIMIZER", help='Optimizer (default: "adamw")') |
| 78 | parser.add_argument('--opt-eps', default=1e-8, type=float, metavar='EPSILON', help='Optimizer Epsilon (default: 1e-8)') |
| 79 | parser.add_argument('--opt-betas', default=None, type=float, metavar='BETA', help='Optimizer Betas') |
| 80 | parser.add_argument('--weight-decay', default=0.06, type=float, help='weight decay') |
| 81 | parser.add_argument('--momentum', default=0.9, type=float, metavar='M', help='Momentum for SGD. Adam will not use momentum') |
| 82 | |
| 83 | parser.add_argument('--T_train', default=None, type=int) |
| 84 | |
| 85 | #Learning rate scheduler |
| 86 | parser.add_argument('--sched', default='cosine', type=str, metavar='SCHEDULER', |
| 87 | help='LR scheduler (default: "cosine"') |
| 88 | parser.add_argument('--lr', type=float, default=1e-3, metavar='LR', |
| 89 | help='learning rate (default: 5e-4)') |
| 90 | parser.add_argument('--lr-noise', type=float, nargs='+', default=None, metavar='pct, pct', |
| 91 | help='learning rate noise on/off epoch percentages') |
| 92 | parser.add_argument('--lr-noise-pct', type=float, default=0.67, metavar='PERCENT', |
| 93 | help='learning rate noise limit percent (default: 0.67)') |
| 94 | parser.add_argument('--lr-noise-std', type=float, default=1.0, metavar='STDDEV', |
| 95 | help='learning rate noise std-dev (default: 1.0)') |