예제 #1
0
    def _init_combine_layer(self, attr1, attr2):
        config_attr = attr1 + "_" + attr2 + "_modal_combine"

        multi_modal_combine_layer = ModalCombineLayer(
            self.config[config_attr].type,
            getattr(self, self._get_embeddings_attr(attr1)),
            getattr(self, self._get_embeddings_attr(attr2)),
            **self.config[config_attr].params)

        setattr(
            self,
            attr1 + "_" + attr2 + "_multi_modal_combine_layer",
            multi_modal_combine_layer,
        )
예제 #2
0
    def __init__(self, image_dim, question_dim, **kwargs):
        super().__init__()

        combine_type = kwargs["modal_combine"]["type"]
        combine_params = kwargs["modal_combine"]["params"]
        modal_combine_layer = ModalCombineLayer(combine_type, image_dim,
                                                question_dim, **combine_params)

        transform_type = kwargs["transform"]["type"]
        transform_params = kwargs["transform"]["params"]
        transform_layer = TransformLayer(transform_type,
                                         modal_combine_layer.out_dim,
                                         **transform_params)

        normalization = kwargs["normalization"]

        self.module = TopDownAttention(modal_combine_layer, transform_layer,
                                       normalization)

        if hasattr(self.module, "out_dim"):
            self.out_dim = self.module.out_dim