被单词嵌入的看似错误的实现所迷惑

时间:2019-02-03 15:05:25

标签: python tensorflow neural-network word-embedding

我试图了解在this model中嵌入预训练单词的实现。

作者加载嵌入(train.py:144),并将其传递到模型的embed_matrix占位符(train.py:73)。

但是,embed_matrix从未被读取,甚至从未在其自身的初始化(model.py:70)之外使用。相反,当计算嵌入(model.py:114)时,会创建一个用于嵌入的新变量:

self.Embedding = tf.get_variable('Embedding', [self.n_vocab, self.embedding_size], tf.float32)

我知道get_variable()可用于获取给定名称和范围的现有变量。但是这里的名称不同(embed_matrixEmbedding)。

我不明白这将如何导致有效的词嵌入实现。似乎在运行时,将经过预训练的词嵌入传递到占位符中并忘记了它,然后在无需训练的情况下创建并使用了一个新词。有什么我没看到的还是这是个错误?

0 个答案:

没有答案