def from_params(cls, vocab: Vocabulary, params: Params) -> 'SentenceClassifier': embedder_params = params.pop("text_field_embedder") text_field_embedder = TextFieldEmbedder.from_params(vocab, embedder_params) question_encoder = Seq2VecEncoder.from_params(params.pop("question_encoder")) initializer = InitializerApplicator.from_params(params.pop('initializer', [])) regularizer = RegularizerApplicator.from_params(params.pop('regularizer', [])) return cls(vocab=vocab, text_field_embedder=text_field_embedder, question_encoder=question_encoder, initializer=initializer, regularizer=regularizer)
def test_from_params(self): params = Params({"regularizers": [("conv", "l1"), ("linear", {"type": "l2", "alpha": 10})]}) regularizer_applicator = RegularizerApplicator.from_params(params.pop("regularizers")) regularizers = regularizer_applicator._regularizers # pylint: disable=protected-access conv = linear = None for regex, regularizer in regularizers: if regex == "conv": conv = regularizer elif regex == "linear": linear = regularizer assert isinstance(conv, L1Regularizer) assert isinstance(linear, L2Regularizer) assert linear.alpha == 10
def from_params(cls, vocab: Vocabulary, params: Params) -> 'ToxicModel': embedder_params = params.pop("text_field_embedder") text_field_embedder = TextFieldEmbedder.from_params(vocab, embedder_params) encoder = Seq2VecEncoder.from_params(params.pop("encoder")) classifier_feedforward = FeedForward.from_params(params.pop("classifier_feedforward")) initializer = InitializerApplicator.from_params(params.pop('initializer', [])) regularizer = RegularizerApplicator.from_params(params.pop('regularizer', [])) return cls(vocab=vocab, text_field_embedder=text_field_embedder, encoder=encoder, classifier_feedforward=classifier_feedforward, initializer=initializer, regularizer=regularizer)