encoders.py 文件源码

python
阅读 31 收藏 0 点赞 0 评论 0

项目:onto-lstm 作者: pdasigi 项目源码 文件源码
def _get_embedding_layer(self, embedding_file=None):
        if self.embedding_layer is None:
            word_vocab_size = self.data_processor.get_vocab_size(onto_aware=False)
            synset_vocab_size = self.data_processor.get_vocab_size(onto_aware=True)
            if embedding_file is None:
                if not self.tune_embedding:
                    print >>sys.stderr, "Pretrained embedding is not given. Setting tune_embedding to True."
                    self.tune_embedding = True
                embedding_weights = None
            else:
                # TODO: Other sources for prior initialization
                embedding = self.data_processor.get_embedding_matrix(embedding_file, onto_aware=True)
                # Put the embedding in a list for Keras to treat it as weights of the embedding layer.
                embedding_weights = [embedding]
                if self.set_sense_priors:
                    initial_sense_prior_parameters = numpy.random.uniform(low=0.01, high=0.99,
                                                                          size=(word_vocab_size, 1))
                    # While setting weights, Keras wants trainable weights first, and then the non trainable
                    # weights. If we are not tuning the embedding, we need to keep the sense priors first.
                    if not self.tune_embedding:
                        embedding_weights = [initial_sense_prior_parameters] + embedding_weights
                    else:
                        embedding_weights.append(initial_sense_prior_parameters)
            self.embedding_layer = OntoAwareEmbedding(word_vocab_size, synset_vocab_size, self.embed_dim,
                                                      weights=embedding_weights, mask_zero=True,
                                                      set_sense_priors=self.set_sense_priors,
                                                      tune_embedding=self.tune_embedding,
                                                      name="embedding")
        return self.embedding_layer
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号