def run_train(args): # do something with args return 0 def main(): dynet_args = [ "--dynet-mem", "--dynet-weight-decay", "--dynet-autobatch", "--dynet-gpus", "--dynet-gpu", "--dynet-devices", "--dynet-seed", ] parser = argparse.ArgumentParser() subparsers = parser.add_subparsers() subparser = subparsers.add_parser("train") subparser.set_defaults(callback=run_train) for arg in dynet_args: subparser.add_argument(arg) subparser.add_argument("--numpy-seed", type=int) subparser.add_argument("--parser-type", choices=["top-down", "chart"], required=True) subparser.add_argument("--tag-embedding-dim", type=int, default=50) subparser.add_argument("--word-embedding-dim", type=int, default=100) subparser.add_argument("--lstm-layers", type=int, default=2) subparser.add_argument("--lstm-dim", type=int, default=250) subparser.add_argument("--label-hidden-dim", type=int, default=250) subparser.add_argument("--split-hidden-dim", type=int, default=250) subparser.add_argument("--dropout", type=float, default=0.4) subparser.add_argument("--explore", action="store_true") subparser.add_argument("--model-path-base", required=True) subparser.add_argument("--evalb-dir", default="EVALB/") subparser.add_argument("--train-path", default="data/02-21.10way.clean") subparser.add_argument("--dev-path", default="data/22.auto.clean") subparser.add_argument("--batch-size", type=int, default=10) subparser.add_argument("--epochs", type=int) subparser.add_argument("--checks-per-epoch", type=int, default=4) subparser.add_argument("--print-vocabs", action="store_true") subparser = subparsers.add_parser("test") subparser.set_defaults(callback=run_test) for arg in dynet_args: subparser.add_argument(arg) subparser.add_argument("--model-path-base", required=True) subparser.add_argument("--evalb-dir", default="EVALB/") subparser.add_argument("--test-path", default="data/23.auto.clean") args = parser.parse_args() args.callback(args)