Exemple #1
0
def main(prog: str = None,
         subcommand_overrides: Dict[str, Subcommand] = {}) -> None:
    """
    The :mod:`~allennlp.run` command only knows about the registered classes in the ``allennlp``
    codebase. In particular, once you start creating your own ``Model`` s and so forth, it won't
    work for them, unless you use the ``--include-package`` flag.
    """

    parser = ArgumentParserWithDefaults(description="Run AllenNLP",
                                        usage="%(prog)s",
                                        prog=prog)
    parser.add_argument("--version",
                        action="version",
                        version="%(prog)s " + __version__)

    subparsers = parser.add_subparsers(title="Commands", metavar="")

    subcommands = {
        # Default commands
        "configure": Configure(),
        "train": Train(),
        "evaluate": Evaluate(),
        "predict": Predict(),
        "make-vocab": MakeVocab(),
        "elmo": Elmo(),
        "fine-tune": FineTune(),
        "dry-run": DryRun(),
        "test-install": TestInstall(),
        "find-lr": FindLearningRate(),
        "print-results": PrintResults(),
        # Superseded by overrides
        **subcommand_overrides,
    }

    for name, subcommand in subcommands.items():
        subparser = subcommand.add_subparser(name, subparsers)
        # configure doesn't need include-package because it imports
        # whatever classes it needs.
        if name != "configure":
            subparser.add_argument(
                "--include-package",
                type=str,
                action="append",
                default=[],
                help="additional packages to include",
            )

    args = parser.parse_args()

    # If a subparser is triggered, it adds its work as `args.func`.
    # So if no such attribute has been added, no subparser was triggered,
    # so give the user some help.
    if "func" in dir(args):
        # Import any additional modules needed (to register custom classes).
        for package_name in getattr(args, "include_package", ()):
            import_submodules(package_name)
        args.func(args)
    else:
        parser.print_help()
Exemple #2
0
def main(prog: str = None,
         model_overrides: Dict[str, DemoModel] = {},
         predictor_overrides: Dict[str, str] = {},
         subcommand_overrides: Dict[str, Subcommand] = {}) -> None:
    """
    The :mod:`~allennlp.run` command only knows about the registered classes in the ``allennlp``
    codebase. In particular, once you start creating your own ``Model`` s and so forth, it won't
    work for them, unless you use the ``--include-package`` flag available for most commands.
    """
    # pylint: disable=dangerous-default-value

    # TODO(mattg): document and/or remove the `predictor_overrides` and `model_overrides` commands.
    # The `--predictor` option for the `predict` command largely removes the need for
    # `predictor_overrides`, and I think the simple server largely removes the need for
    # `model_overrides`, and maybe the whole `serve` command as a public API (we only need that
    # path for demo.allennlp.org, and it's not likely anyone else would host that particular demo).

    parser = argparse.ArgumentParser(description="Run AllenNLP",
                                     usage='%(prog)s',
                                     prog=prog)

    subparsers = parser.add_subparsers(title='Commands', metavar='')

    subcommands = {
        # Default commands
        "train": Train(),
        "evaluate": Evaluate(),
        "predict": Predict(predictor_overrides),
        "serve": Serve(model_overrides),
        "make-vocab": MakeVocab(),
        "elmo": Elmo(),
        "fine-tune": FineTune(),

        # Superseded by overrides
        **subcommand_overrides
    }

    for name, subcommand in subcommands.items():
        subparser = subcommand.add_subparser(name, subparsers)
        subparser.add_argument('--include-package',
                               type=str,
                               action='append',
                               default=[],
                               help='additional packages to include')

    args = parser.parse_args()

    # Import any additional modules needed (to register custom classes).
    for package_name in args.include_package:
        import_submodules(package_name)

    # If a subparser is triggered, it adds its work as `args.func`.
    # So if no such attribute has been added, no subparser was triggered,
    # so give the user some help.
    if 'func' in dir(args):
        args.func(args)
    else:
        parser.print_help()
Exemple #3
0
def main(prog: str = None,
         subcommand_overrides: Dict[str, Subcommand] = {}) -> None:
    """
    The :mod:`~allennlp.run` command only knows about the registered classes in the ``allennlp``
    codebase. In particular, once you start creating your own ``Model`` s and so forth, it won't
    work for them, unless you use the ``--include-package`` flag.
    """
    # pylint: disable=dangerous-default-value
    parser = argparse.ArgumentParser(description="Run AllenNLP", usage='%(prog)s', prog=prog)
    parser.add_argument('--version', action='version', version='%(prog)s ' + __version__)

    subparsers = parser.add_subparsers(title='Commands', metavar='')

    subcommands = {
            # Default commands
            "configure": Configure(),
            "train": Train(),
            "train_multitask": TrainMultiTask(),  # includes the auxillary citation section prediction task
            "train_multitask_2": TrainMultiTask2(),  # includes both tasks
            "evaluate": Evaluate(),
            "predict": Predict(),
            "make-vocab": MakeVocab(),
            "elmo": Elmo(),
            "fine-tune": FineTune(),
            "dry-run": DryRun(),
            "test-install": TestInstall(),

            # Superseded by overrides
            **subcommand_overrides
    }

    for name, subcommand in subcommands.items():
        subparser = subcommand.add_subparser(name, subparsers)
        # configure doesn't need include-package because it imports
        # whatever classes it needs.
        if name != "configure":
            subparser.add_argument('--include-package',
                                   type=str,
                                   action='append',
                                   default=[],
                                   help='additional packages to include')

    args = parser.parse_args()


    # If a subparser is triggered, it adds its work as `args.func`.
    # So if no such attribute has been added, no subparser was triggered,
    # so give the user some help.
    if 'func' in dir(args):
        # Import any additional modules needed (to register custom classes).
        for package_name in getattr(args, 'include_package', ()):
            try:
                import_submodules(package_name)
            except TypeError:
                import pdb; pdb.set_trace()
        args.func(args)
    else:
        parser.print_help()
    def setUp(self):
        super(TestFineTune, self).setUp()
        self.model_archive = unicode(self.FIXTURES_ROOT / u'decomposable_attention' / u'serialization' / u'model.tar.gz')
        self.config_file = unicode(self.FIXTURES_ROOT / u'decomposable_attention' / u'experiment.json')
        self.serialization_dir = unicode(self.TEST_DIR / u'fine_tune')

        self.parser = argparse.ArgumentParser(description=u"Testing")
        subparsers = self.parser.add_subparsers(title=u'Commands', metavar=u'')
        FineTune().add_subparser(u'fine-tune', subparsers)
Exemple #5
0
    def setUp(self):
        super().setUp()
        self.model_archive = 'tests/fixtures/decomposable_attention/serialization/model.tar.gz'
        self.config_file = 'tests/fixtures/decomposable_attention/experiment.json'
        self.serialization_dir = os.path.join(self.TEST_DIR, 'fine_tune')

        self.parser = argparse.ArgumentParser(description="Testing")
        subparsers = self.parser.add_subparsers(title='Commands', metavar='')
        FineTune().add_subparser('fine-tune', subparsers)
    def setUp(self):
        super().setUp()
        self.model_archive = str(
            self.FIXTURES_ROOT / "decomposable_attention" / "serialization" / "model.tar.gz"
        )
        self.config_file = str(self.FIXTURES_ROOT / "decomposable_attention" / "experiment.json")
        self.serialization_dir = str(self.TEST_DIR / "fine_tune")

        self.parser = argparse.ArgumentParser(description="Testing")
        subparsers = self.parser.add_subparsers(title="Commands", metavar="")
        FineTune().add_subparser(subparsers)
Exemple #7
0
def create_parser(
    prog: str = None,
    subcommand_overrides: Dict[str,
                               Subcommand] = None) -> argparse.ArgumentParser:
    """
    Creates the argument parser for the main program.
    """
    if subcommand_overrides is None:
        subcommand_overrides = {}

    parser = ArgumentParserWithDefaults(description="Run AllenNLP",
                                        usage="%(prog)s",
                                        prog=prog)
    parser.add_argument("--version",
                        action="version",
                        version="%(prog)s " + __version__)

    subparsers = parser.add_subparsers(title="Commands", metavar="")

    subcommands = {
        # Default commands
        "train": Train(),
        "evaluate": Evaluate(),
        "predict": Predict(),
        "elmo": Elmo(),
        "fine-tune": FineTune(),
        "dry-run": DryRun(),
        "make-vocab":
        DryRun(),  # deprecated, but keeping for backward compatibility.
        "test-install": TestInstall(),
        "find-lr": FindLearningRate(),
        "print-results": PrintResults(),
        # Superseded by overrides
        **subcommand_overrides,
    }

    for name, subcommand in subcommands.items():
        subparser = subcommand.add_subparser(name, subparsers)
        # configure doesn't need include-package because it imports
        # whatever classes it needs.
        if name != "configure":
            subparser.add_argument(
                "--include-package",
                type=str,
                action="append",
                default=[],
                help="additional packages to include",
            )

    return parser
Exemple #8
0
def main(prog=None, subcommand_overrides={}):
    u"""
    The :mod:`~allennlp.run` command only knows about the registered classes in the ``allennlp``
    codebase. In particular, once you start creating your own ``Model`` s and so forth, it won't
    work for them, unless you use the ``--include-package`` flag.
    """
    # pylint: disable=dangerous-default-value
    parser = argparse.ArgumentParser(description=u"Run AllenNLP",
                                     usage=u'%(prog)s',
                                     prog=prog)
    parser.add_argument(u'--version', action=u'version', version=u'%(prog)s ')

    subparsers = parser.add_subparsers(title=u'Commands', metavar=u'')

    subcommands = {
        # Default commands
        u"configure": Configure(),
        u"train": Train(),
        u"evaluate": Evaluate(),
        u"predict": Predict(),
        u"make-vocab": MakeVocab(),
        u"elmo": Elmo(),
        u"fine-tune": FineTune(),
        u"dry-run": DryRun(),
        u"test-install": TestInstall(),
    }

    for name, subcommand in list(subcommands.items()):
        subparser = subcommand.add_subparser(name, subparsers)
        # configure doesn't need include-package because it imports
        # whatever classes it needs.
        if name != u"configure":
            subparser.add_argument(u'--include-package',
                                   type=unicode,
                                   action=u'append',
                                   default=[],
                                   help=u'additional packages to include')

    args = parser.parse_args()

    # If a subparser is triggered, it adds its work as `args.func`.
    # So if no such attribute has been added, no subparser was triggered,
    # so give the user some help.
    if u'func' in dir(args):
        # Import any additional modules needed (to register custom classes).
        for package_name in getattr(args, u'include_package', ()):
            import_submodules(package_name)
        args.func(args)
    else:
        parser.print_help()
Exemple #9
0
def main(prog: str = None,
         subcommand_overrides: Dict[str, Subcommand] = {}) -> None:
    """
    The :mod:`~allennlp.run` command only knows about the registered classes in the ``allennlp``
    codebase. In particular, once you start creating your own ``Model`` s and so forth, it won't
    work for them, unless you use the ``--include-package`` flag.
    """
    # pylint: disable=dangerous-default-value
    parser = argparse.ArgumentParser(description="Run AllenNLP",
                                     usage='%(prog)s',
                                     prog=prog)

    subparsers = parser.add_subparsers(title='Commands', metavar='')

    subcommands = {
        # Default commands
        "train": Train(),
        "evaluate": Evaluate(),
        "predict": Predict(),
        "make-vocab": MakeVocab(),
        "elmo": Elmo(),
        "fine-tune": FineTune(),
        "dry-run": DryRun(),

        # Superseded by overrides
        **subcommand_overrides
    }

    for name, subcommand in subcommands.items():
        subparser = subcommand.add_subparser(name, subparsers)
        subparser.add_argument('--include-package',
                               type=str,
                               action='append',
                               default=[],
                               help='additional packages to include')

    args = parser.parse_args()

    # If a subparser is triggered, it adds its work as `args.func`.
    # So if no such attribute has been added, no subparser was triggered,
    # so give the user some help.
    if 'func' in dir(args):
        # Import any additional modules needed (to register custom classes).
        for package_name in args.include_package:
            import_submodules(package_name)
        # Run a command
        args.func(args)
    else:
        parser.print_help()
def main():
    prog = "python -m allennlp.run"
    subcommand_overrides = {}
    # pylint: disable=dangerous-default-value
    parser = argparse.ArgumentParser(description="Run AllenNLP",
                                     usage='%(prog)s',
                                     prog=prog)
    print(parser)

    subparsers = parser.add_subparsers(title='Commands', metavar='')

    subcommands = {
        # Default commands
        "train": Train(),
        "evaluate": Evaluate(),
        "evaluate_mlqa": Evaluate_MLQA(),
        "make-vocab": MakeVocab(),
        "fine-tune": FineTune(),
        # Superseded by overrides
        **subcommand_overrides
    }

    for name, subcommand in subcommands.items():
        subparser = subcommand.add_subparser(name, subparsers)
        subparser.add_argument('--include-package',
                               type=str,
                               action='append',
                               default=[],
                               help='additional packages to include')

    args = parser.parse_args()

    # If a subparser is triggered, it adds its work as `args.func`.
    # So if no such attribute has been added, no subparser was triggered,
    # so give the user some help.
    if 'func' in dir(args):
        # Import any additional modules needed (to register custom classes).
        for package_name in args.include_package:
            import_submodules(package_name)
        args.func(args)
    else:
        parser.print_help()