コード例 #1
0
    def __init__(self, vocab_size, embed_dim, embed_init, max_nsent, max_npara,
                 experiment, *args, **kwargs):
        super(quantize_pos_model, self).__init__(vocab_size, embed_dim,
                                                 embed_init, experiment)

        if self.expe.config.encoder_type.lower() == "lstm" or \
                self.expe.config.encoder_type.lower() == "gru":
            ensize = 2 * self.expe.config.ensize
        else:
            ensize = embed_dim

        self.sent_id_pred = model_utils.get_mlp(
            input_size=ensize,
            hidden_size=self.expe.config.mhsize,
            output_size=self.expe.config.nb,
            n_layer=self.expe.config.mlplayer,
            dropout=self.expe.config.dp)

        self.para_id_pred = model_utils.get_mlp(
            input_size=ensize,
            hidden_size=self.expe.config.mhsize,
            output_size=self.expe.config.nb,
            n_layer=self.expe.config.mlplayer,
            dropout=self.expe.config.dp)

        self.bins = np.arange(self.expe.config.nb) / self.expe.config.nb
コード例 #2
0
ファイル: sep_dec_models.py プロジェクト: probe2/DiscoEval
    def __init__(self, vocab_size, embed_dim, embed_init, max_nsent, max_npara,
                 max_nlv, doc_title_vocab_size, sec_title_vocab_size,
                 experiment, *args, **kwargs):
        super(quantize_pos_regression_model,
              self).__init__(vocab_size, embed_dim, embed_init, experiment)

        if self.expe.config.encoder_type.lower() in [
                "lstm", "gru", "gru_attn"
        ]:
            ensize = 2 * self.expe.config.ensize
        else:
            ensize = embed_dim

        self.sent_id_pred = model_utils.get_mlp(
            input_size=ensize,
            hidden_size=self.expe.config.mhsize,
            output_size=1,
            n_layer=self.expe.config.mlplayer,
            dropout=self.expe.config.dp)

        self.para_id_pred = model_utils.get_mlp(
            input_size=ensize,
            hidden_size=self.expe.config.mhsize,
            output_size=1,
            n_layer=self.expe.config.mlplayer,
            dropout=self.expe.config.dp)

        self.lv_pred = model_utils.get_mlp(input_size=ensize,
                                           hidden_size=self.expe.config.mhsize,
                                           output_size=max_nlv,
                                           n_layer=self.expe.config.mlplayer,
                                           dropout=self.expe.config.dp)

        self.doc_title_decode = decoders.bag_of_words(
            input_size=ensize,
            mlp_hidden_size=self.expe.config.mhsize,
            mlp_layer=self.expe.config.mlplayer,
            hidden_size=self.expe.config.desize,
            dropout=self.expe.config.dp,
            embed_dim=embed_dim,
            tie_weight=self.expe.config.tw,
            word_dropout=self.expe.config.wd,
            embed_init=embed_init,
            vocab_size=doc_title_vocab_size,
            log=experiment.log)

        self.sec_title_decode = decoders.bag_of_words(
            input_size=ensize,
            mlp_hidden_size=self.expe.config.mhsize,
            mlp_layer=self.expe.config.mlplayer,
            hidden_size=self.expe.config.desize,
            dropout=self.expe.config.dp,
            embed_dim=embed_dim,
            tie_weight=self.expe.config.tw,
            word_dropout=self.expe.config.wd,
            embed_init=embed_init,
            vocab_size=sec_title_vocab_size,
            log=experiment.log)

        self.bins = np.arange(self.expe.config.nb) / self.expe.config.nb
コード例 #3
0
 def __init__(self, vocab_size, input_size, mlp_hidden_size, mlp_layer,
              hidden_size, embed_dim, dropout, tie_weight, word_dropout,
              log, embed_init, *args, **kwargs):
     super(bag_of_words, self).__init__()
     self.func = model_utils.get_mlp(input_size, mlp_hidden_size,
                                     hidden_size, mlp_layer, dropout)
     self.hid2vocab = nn.Linear(hidden_size, vocab_size)
コード例 #4
0
 def __init__(self, ysize, zsize, vocab_size, mlp_hidden_size, mlp_layer,
              hidden_size, dropout, *args, **kwargs):
     super(lstm, self).__init__()
     self.cell = nn.LSTM(zsize,
                         hidden_size,
                         bidirectional=False,
                         batch_first=True)
     self.hid2vocab = model_utils.get_mlp(hidden_size + ysize, hidden_size,
                                          vocab_size, mlp_layer, dropout)
コード例 #5
0
 def __init__(self, vocab_size, embed_dim, embed_init, hidden_size, dropout,
              nclass, ncode, mlp_hidden_size, mlp_layer, log, *args,
              **kwargs):
     super(bilstm_lc, self).__init__(vocab_size, embed_dim, embed_init,
                                     dropout, log)
     self.lstm = nn.LSTM(embed_dim // ncode * ncode,
                         hidden_size,
                         bidirectional=True,
                         batch_first=True)
     self.lc = nn.ModuleList([
         model_utils.get_mlp(embed_dim, hidden_size, nclass, mlp_layer,
                             dropout) for _ in range(ncode)
     ])
     self.lc_embed = nn.ModuleList(
         [nn.Embedding(nclass, embed_dim // ncode) for _ in range(ncode)])
コード例 #6
0
    def __init__(self, vocab_size, input_size, mlp_hidden_size, mlp_layer,
                 hidden_size, embed_dim, dropout, tie_weight, word_dropout,
                 log, embed_init, *args, **kwargs):
        super(lstm, self).__init__(vocab_size, input_size, mlp_hidden_size,
                                   mlp_layer, hidden_size, embed_dim, dropout,
                                   tie_weight, word_dropout, log, embed_init,
                                   *args, **kwargs)

        self.latent2hid = model_utils.get_mlp(input_size, mlp_hidden_size,
                                              hidden_size * 2, mlp_layer,
                                              dropout)

        self.cell = nn.LSTM(embed_dim,
                            hidden_size,
                            bidirectional=False,
                            batch_first=True)
コード例 #7
0
    def __init__(self, vocab_size, input_size, mlp_hidden_size, mlp_layer,
                 hidden_size, embed_dim, dropout, tie_weight, word_dropout,
                 log, embed_init, *args, **kwargs):
        super(gru_cat, self).__init__(vocab_size, input_size, mlp_hidden_size,
                                      mlp_layer, hidden_size, embed_dim,
                                      dropout, tie_weight, word_dropout, log,
                                      embed_init, *args, **kwargs)

        self.latent2hid = model_utils.get_mlp(input_size, mlp_hidden_size,
                                              hidden_size, mlp_layer, dropout)

        self.cell = nn.GRU(embed_dim + input_size,
                           hidden_size,
                           bidirectional=False,
                           batch_first=True)
        if not tie_weight:
            self.hid2vocab = nn.Linear(hidden_size, vocab_size)
コード例 #8
0
    def __init__(self, vocab_size, embed_dim, embed_init, experiment):
        super(vgvae, self).__init__(vocab_size, embed_dim, embed_init,
                                    experiment)
        self.yencode = getattr(encoders, self.expe.config.yencoder_type)(
            embed_dim=embed_dim,
            embed_init=embed_init,
            hidden_size=self.expe.config.ensize,
            vocab_size=vocab_size,
            dropout=self.expe.config.dp,
            log=experiment.log)

        self.zencode = getattr(encoders, self.expe.config.zencoder_type)(
            embed_dim=embed_dim,
            embed_init=embed_init,
            hidden_size=self.expe.config.ensize,
            vocab_size=vocab_size,
            dropout=self.expe.config.dp,
            mlp_hidden_size=self.expe.config.mhsize,
            mlp_layer=self.expe.config.mlplayer,
            ncode=self.expe.config.ncode,
            nclass=self.expe.config.nclass,
            log=experiment.log)

        if "lstm" in self.expe.config.yencoder_type.lower():
            y_out_size = 2 * self.expe.config.ensize
        elif self.expe.config.yencoder_type.lower() == "word_avg":
            y_out_size = embed_dim

        if "lstm" in self.expe.config.zencoder_type.lower():
            z_out_size = 2 * self.expe.config.ensize
        elif self.expe.config.zencoder_type.lower() == "word_avg":
            z_out_size = embed_dim

        self.mean1 = model_utils.get_mlp(input_size=y_out_size,
                                         hidden_size=self.expe.config.mhsize,
                                         output_size=self.expe.config.ysize,
                                         n_layer=self.expe.config.ymlplayer,
                                         dropout=self.expe.config.dp)

        self.logvar1 = model_utils.get_mlp(input_size=y_out_size,
                                           hidden_size=self.expe.config.mhsize,
                                           output_size=1,
                                           n_layer=self.expe.config.ymlplayer,
                                           dropout=self.expe.config.dp)

        self.mean2 = model_utils.get_mlp(input_size=z_out_size,
                                         hidden_size=self.expe.config.mhsize,
                                         output_size=self.expe.config.zsize,
                                         n_layer=self.expe.config.zmlplayer,
                                         dropout=self.expe.config.dp)

        self.logvar2 = model_utils.get_mlp(input_size=z_out_size,
                                           hidden_size=self.expe.config.mhsize,
                                           output_size=self.expe.config.zsize,
                                           n_layer=self.expe.config.zmlplayer,
                                           dropout=self.expe.config.dp)

        self.decode = getattr(decoders, self.expe.config.decoder_type)(
            embed_init=embed_init,
            embed_dim=embed_dim,
            ysize=self.expe.config.ysize,
            zsize=self.expe.config.zsize,
            mlp_hidden_size=self.expe.config.mhsize,
            mlp_layer=self.expe.config.mlplayer,
            hidden_size=self.expe.config.desize,
            dropout=self.expe.config.dp,
            vocab_size=vocab_size,
            log=experiment.log)

        if "lc" in self.expe.config.zencoder_type.lower():
            enc_embed_dim = embed_dim // self.expe.config.ncode *\
                self.expe.config.ncode
        else:
            enc_embed_dim = embed_dim

        self.enc_pos_decode = model_utils.get_mlp(
            input_size=self.expe.config.zsize + enc_embed_dim,
            hidden_size=self.expe.config.mhsize,
            n_layer=self.expe.config.mlplayer,
            output_size=MAX_LEN,
            dropout=self.expe.config.dp)

        self.dec_pos_decode = model_utils.get_mlp(
            input_size=self.expe.config.zsize + embed_dim,
            hidden_size=self.expe.config.mhsize,
            n_layer=self.expe.config.mlplayer,
            output_size=MAX_LEN,
            dropout=self.expe.config.dp)
コード例 #9
0
    def __init__(self, vocab_size, embed_dim, embed_init, experiment):
        super(base, self).__init__()
        self.expe = experiment
        self.eps = self.expe.config.eps
        self.margin = self.expe.config.m
        self.use_cuda = self.expe.config.use_cuda

        self.yencode = getattr(encoders, self.expe.config.yencoder_type)(
            embed_dim=embed_dim,
            embed_init=embed_init,
            hidden_size=self.expe.config.ensize,
            vocab_size=vocab_size,
            log=experiment.log)

        self.zencode = getattr(encoders, self.expe.config.zencoder_type)(
            embed_dim=embed_dim,
            embed_init=embed_init,
            hidden_size=self.expe.config.ensize,
            vocab_size=vocab_size,
            log=experiment.log)

        if "lstm" in self.expe.config.yencoder_type.lower():
            y_out_size = 2 * self.expe.config.ensize
        elif self.expe.config.yencoder_type.lower() == "word_avg":
            y_out_size = embed_dim
        elif self.expe.config.yencoder_type.lower() == "bert":
            y_out_size = embed_dim

        if "lstm" in self.expe.config.zencoder_type.lower():
            z_out_size = 2 * self.expe.config.ensize
        elif self.expe.config.zencoder_type.lower() == "word_avg":
            z_out_size = embed_dim
        elif self.expe.config.zencoder_type.lower() == "bert":
            z_out_size = embed_dim

        self.mean1 = model_utils.get_mlp(input_size=y_out_size,
                                         hidden_size=self.expe.config.mhsize,
                                         output_size=self.expe.config.ysize,
                                         n_layer=self.expe.config.ymlplayer,
                                         dropout=self.expe.config.dp)

        self.logvar1 = model_utils.get_mlp(input_size=y_out_size,
                                           hidden_size=self.expe.config.mhsize,
                                           output_size=1,
                                           n_layer=self.expe.config.ymlplayer,
                                           dropout=self.expe.config.dp)

        self.mean2 = model_utils.get_mlp(input_size=z_out_size,
                                         hidden_size=self.expe.config.mhsize,
                                         output_size=self.expe.config.zsize,
                                         n_layer=self.expe.config.zmlplayer,
                                         dropout=self.expe.config.dp)

        self.logvar2 = model_utils.get_mlp(input_size=z_out_size,
                                           hidden_size=self.expe.config.mhsize,
                                           output_size=self.expe.config.zsize,
                                           n_layer=self.expe.config.zmlplayer,
                                           dropout=self.expe.config.dp)

        if self.expe.config.zencoder_type.lower() == "word_avg":
            assert self.expe.config.decoder_type.lower() == "bag_of_words"

        self.decode = getattr(decoders, self.expe.config.decoder_type)(
            ysize=self.expe.config.ysize,
            zsize=self.expe.config.zsize,
            mlp_hidden_size=self.expe.config.mhsize,
            mlp_layer=self.expe.config.mlplayer,
            hidden_size=self.expe.config.desize,
            dropout=self.expe.config.dp,
            vocab_size=vocab_size)

        self.pos_decode = model_utils.get_mlp(
            input_size=self.expe.config.zsize + embed_dim,
            hidden_size=self.expe.config.mhsize,
            n_layer=self.expe.config.mlplayer,
            output_size=MAX_LEN,
            dropout=self.expe.config.dp)
コード例 #10
0
 def __init__(self, ysize, zsize, mlp_layer, hidden_size, vocab_size,
              dropout, *args, **kwargs):
     super(bag_of_words, self).__init__()
     self.hid2vocab = model_utils.get_mlp(ysize + zsize, hidden_size,
                                          vocab_size, mlp_layer, dropout)