예제 #1
0
    def persist(self, file_name: Text,
                model_dir: Text) -> Optional[Dict[Text, Any]]:
        """Persist this model into the passed directory.

        Returns the metadata necessary to load the model again.
        """

        file_name = file_name + ".pkl"

        if self.vectorizers:
            # vectorizer instance was not None, some models could have been trained
            attribute_vocabularies = self._collect_vectorizer_vocabularies()
            if self._is_any_model_trained(attribute_vocabularies):
                # Definitely need to persist some vocabularies
                featurizer_file = os.path.join(model_dir, file_name)

                if self.use_shared_vocab:
                    # Only persist vocabulary from one attribute. Can be loaded and
                    # distributed to all attributes.
                    vocab = attribute_vocabularies[TEXT_ATTRIBUTE]
                else:
                    vocab = attribute_vocabularies

                utils.json_pickle(featurizer_file, vocab)

        return {"file": file_name}
예제 #2
0
    def persist(self, file_name: Text,
                model_dir: Text) -> Optional[Dict[Text, Any]]:

        file_name = file_name + ".pkl"
        featurizer_file = os.path.join(model_dir, file_name)
        utils.json_pickle(featurizer_file, self)
        return {"file": file_name}
 def persist(self, file_name: Text, model_dir: Text) -> Optional[Dict[Text, Any]]:
     """Persist this model into the passed directory."""
     classifier_file_name = file_name+"_classifier.pkl"
     if self.clf:
         utils.json_pickle(os.path.join(
             model_dir, classifier_file_name), self.clf)
     return {"classifier": classifier_file_name}
예제 #4
0
 def persist(self, file_name: Text,
             model_dir: Text) -> Optional[Dict[Text, Any]]:
     """Persist this model into the passed directory."""
     mapping_file_name = file_name + "_mapping.pkl"
     if self.grams_mapping:
         utils.json_pickle(os.path.join(model_dir, mapping_file_name),
                           self.grams_mapping)
     return {"grams_mapping": mapping_file_name}
예제 #5
0
    def persist(self, file_name: Text, model_dir: Text) -> Optional[Dict[Text, Any]]:
        """Persist this model into the passed directory.

        Returns the metadata necessary to load the model again.
        """

        file_name = file_name + ".pkl"
        if self.vectorizer:
            featurizer_file = os.path.join(model_dir, file_name)
            utils.json_pickle(featurizer_file, self.vectorizer.vocabulary_)
        return {"file": file_name}
예제 #6
0
    def persist(self, file_name: Text,
                model_dir: Text) -> Optional[Dict[Text, Any]]:
        """Persist this component to disk for future loading."""

        model_file_name = file_name + '_model.h5'
        encoder_file_name = file_name + '_encoder.pkl'
        if self.model and self.le:
            with self.graph.as_default(), self.session.as_default():
                self.model.save(os.path.join(model_dir, model_file_name))
            utils.json_pickle(os.path.join(model_dir, encoder_file_name),
                              self.le.classes_)

        return {'model': model_file_name, 'encoder': encoder_file_name}
예제 #7
0
    def persist(self, file_name: Text, model_dir: Text) -> Optional[Dict[Text, Any]]:
        """Persist this model into the passed directory."""

        classifier_file_name = file_name + "_classifier.pkl"
        encoder_file_name = file_name + "_encoder.pkl"
        if self.clf and self.le:
            utils.json_pickle(
                os.path.join(model_dir, encoder_file_name), self.le.classes_
            )
            utils.json_pickle(
                os.path.join(model_dir, classifier_file_name), self.clf.best_estimator_
            )
        return {"classifier": classifier_file_name, "encoder": encoder_file_name}
예제 #8
0
 def persist(self, file_name, model_dir):
     """Persist this model into the passed directory."""
     classifier_file = os.path.join(model_dir, FASTAI_MODEL_FILE_NAME)
     utils.json_pickle(classifier_file, self)
     return {"classifier_file": FASTAI_MODEL_FILE_NAME}
예제 #9
0
 def persist(self, file_name: Text,
             model_dir: Text) -> Optional[Dict[Text, Any]]:
     vectorizer_file = os.path.join(model_dir, self.VECTOR_PATH)
     utils.json_pickle(vectorizer_file, self)
     return {"vectorizer_file": self.VECTOR_PATH}