如何在Tensorflow中训练Word嵌入

时间:2016-10-07 20:52:42

标签: neural-network tensorflow deep-learning conv-neural-network word2vec

所以我已经改变了这里描述的模型来执行多类文本分类而不是二进制类分类。 http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/

即使在应用L2正则化之后,我的模型仍过度拟合,因此我想使用预先训练的word2vec模型。但我对Tensorflow& amp;深度学习与我不知道从哪里开始。

代码:https://github.com/dennybritz/cnn-text-classification-tf/blob/master/text_cnn.py#L27

以下是我要更改以使用Google预训练word2vec模型的相关代码:

        # Embedding layer
    with tf.device('/cpu:0'), tf.name_scope("embedding"):
        W = tf.Variable(
            tf.random_uniform([vocab_size, embedding_size], -1.0, 1.0),
            name="W")
        self.embedded_chars = tf.nn.embedding_lookup(W, self.input_x)
        self.embedded_chars_expanded = tf.expand_dims(self.embedded_chars, -1)

如果有人能指出我如何在代码中加入它,那将会非常有帮助。我查看了embedding_lookup文档,但似乎没有我想要的信息。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

  W = tf.Variable(
        tf.random_uniform([vocab_size, embedding_size], -1.0, 1.0),
        name="W")

此行随机创建了一个单词dic,以代表您自己的vocab中的单词, 因此,您只需要加载预训练的word2vec dic即可替换“ W”, 会起作用的