def get_parser()

in train-distillation.py [0:0]


def get_parser():
    """
    Generate a parameters parser.
    """
    # parse parameters
    parser = argparse.ArgumentParser(description='Language transfer')

    # main parameters
    parser.add_argument("--dump_path", type=str, default="")
    parser.add_argument("--exp_name", type=str, default="bypass")
    parser.add_argument("--save_periodic", type=int, default=0)
    parser.add_argument("--exp_id", type=str, default="")
    parser.add_argument("--nb_workers", type=int, default=10)
    parser.add_argument("--fp16", type=bool_flag, default=False)

    # dataset
    parser.add_argument("--dataset", type=str, default="cifar10")
    # parser.add_argument("--crop_size", type=int, default=224,
    #                     help="Crop size")
    # parser.add_argument("--img_size", type=int, default=256,
    #                     help="Img resize")

    # model type
    parser.add_argument("--architecture", type=str, default="myresnet2")
    parser.add_argument("--non_linearity", type=str, default="relu",
                        help="Non linearity")
    parser.add_argument("--pretrained", type=bool_flag, default=False,
                        help="Use a pretrained model")
    parser.add_argument("--teacher_ckpt", type=str, default="")
    parser.add_argument("--load_linear", type=bool_flag, default=False)
    parser.add_argument("--train_path", type=str, default="vanilla_train")
    parser.add_argument("--num_classes", type=int, default=-1,
                        help="Number of subclasses to use")

    # training parameters
    parser.add_argument("--optimizer", type=str, default="sgd,lr=0.1-0.01-0.001,momentum=0.9,weight_decay=0.0001",
                        help="Optimizer (SGD / RMSprop / Adam, etc.)")
    parser.add_argument("--batch_size", type=int, default=256,
                        help="Number of sentences per batch")
    parser.add_argument("--epochs", type=int, default=90,
                        help="Number of epochs")
    parser.add_argument("--stopping_criterion", type=str, default="",
                        help="Stopping criterion, and number of non-increase before stopping the experiment")
    parser.add_argument("--validation_metrics", type=str, default="",
                        help="Validation metrics")
    parser.add_argument("--train_transform", choices=["random", "flip", "center"], default="random",
                        help="Transformation applied to training images")
    parser.add_argument("--seed", type=int, default=0,
                        help="Random seed")
    parser.add_argument("--temperature", type=float, default=1,
                        help="Distillation temperature")

    # reload
    parser.add_argument("--reload_model", type=str, default="",
                        help="Reload a pretrained model")

    # evaluation
    parser.add_argument("--eval_only", type=bool_flag, default=False,
                        help="Only run evaluations")

    # debug
    parser.add_argument("--debug_train", type=bool_flag, default=False,
                        help="Use valid sets for train sets (faster loading)")
    parser.add_argument("--debug_slurm", type=bool_flag, default=False,
                        help="Debug from a SLURM job")
    parser.add_argument("--debug", help="Enable all debug flags",
                        action="store_true")


    # multi-gpu / multi-node
    parser.add_argument("--local_rank", type=int, default=-1,
                        help="Multi-GPU - Local rank")
    parser.add_argument("--master_port", type=int, default=-1,
                        help="Master port (for multi-node SLURM jobs)")

    return parser