Skip to content

Instantly share code, notes, and snippets.

@Emrys-Hong
Created August 9, 2019 15:40
Show Gist options
  • Select an option

  • Save Emrys-Hong/823a23ad72330707b4c59b06d9f225fc to your computer and use it in GitHub Desktop.

Select an option

Save Emrys-Hong/823a23ad72330707b4c59b06d9f225fc to your computer and use it in GitHub Desktop.
how to use argparse.ArgumentParser() callbacks
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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment