示例#1
0
    def train_online(
            self,
            training_trackers,  # type: List[DialogueStateTracker]
            input_channel=None,  # type: Optional[InputChannel]
            max_visual_history=3,  # type: int
            **kwargs  # type: **Any
    ):
        # type: (...) -> None
        from rasa_core.policies.online_trainer import OnlinePolicyEnsemble
        """Train a policy ensemble in online learning mode."""

        if not self.interpreter:
            raise ValueError("When using online learning, you need to specify "
                             "an interpreter for the agent to use.")

        # TODO: DEPRECATED - remove in version 0.10
        if isinstance(training_trackers, string_types):
            # the user most likely passed in a file name to load training
            # data from
            logger.warning("Passing a file name to `agent.train_online(...)` "
                           "is deprecated. Rather load the data with "
                           "`data = agent.load_data(file_name)` and pass it "
                           "to `agent.train_online(data)`.")
            training_trackers = self.load_data(training_trackers)

        logger.debug("Agent online trainer got kwargs: {}".format(kwargs))
        check_domain_sanity(self.domain)

        self.policy_ensemble.train(training_trackers, self.domain, **kwargs)

        ensemble = OnlinePolicyEnsemble(self.policy_ensemble,
                                        training_trackers, max_visual_history)

        ensemble.run_online_training(self.domain, self.interpreter,
                                     input_channel)
示例#2
0
    def train_online(self,
                     training_trackers,  # type: List[DialogueStateTracker]
                     input_channel=None,  # type: Optional[InputChannel]
                     max_visual_history=3,  # type: int
                     **kwargs  # type: **Any
                     ):
        # type: (...) -> None
        from rasa_core.policies.online_trainer import OnlinePolicyEnsemble
        """Train a policy ensemble in online learning mode."""

        if not self.interpreter:
            raise ValueError(
                    "When using online learning, you need to specify "
                    "an interpreter for the agent to use.")

        # TODO: DEPRECATED - remove in version 0.10
        if isinstance(training_trackers, string_types):
            # the user most likely passed in a file name to load training
            # data from
            logger.warning("Passing a file name to `agent.train_online(...)` "
                           "is deprecated. Rather load the data with "
                           "`data = agent.load_data(file_name)` and pass it "
                           "to `agent.train_online(data)`.")
            training_trackers = self.load_data(training_trackers)

        logger.debug("Agent online trainer got kwargs: {}".format(kwargs))
        check_domain_sanity(self.domain)

        self.policy_ensemble.train(training_trackers, self.domain, **kwargs)

        ensemble = OnlinePolicyEnsemble(self.policy_ensemble,
                                        training_trackers,
                                        max_visual_history)

        ensemble.run_online_training(self.domain, self.interpreter,
                                     input_channel)