Neural network 如何在Tensorflow中训练单词嵌入

Neural network 如何在Tensorflow中训练单词嵌入,neural-network,tensorflow,deep-learning,conv-neural-network,word2vec,Neural Network,Tensorflow,Deep Learning,Conv Neural Network,Word2vec,因此,我改变了这里描述的模型,以执行多类文本分类,而不是二进制类分类 即使在应用L2正则化之后,我的模型仍然过拟合,所以我想使用预先训练好的word2vec模型。但我对Tensorflow&deep learning非常陌生,不知道从哪里开始 代码: 以下是我想要更改的相关代码,以使用Google预先培训的word2vec模型: # Embedding layer with tf.device('/cpu:0'), tf.name_scope("embedding"):

因此,我改变了这里描述的模型,以执行多类文本分类,而不是二进制类分类

即使在应用L2正则化之后,我的模型仍然过拟合,所以我想使用预先训练好的word2vec模型。但我对Tensorflow&deep learning非常陌生,不知道从哪里开始

代码:

以下是我想要更改的相关代码,以使用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文档,但该文档似乎没有我要查找的信息。

请参考以下链接:

这一行随机创建了一个单词dic,用你自己的词汇来表示这个单词, 因此,您只需加载预先训练好的word2vec dic来替换您的“W”,
它会起作用的

我已经看到了第1篇帖子,并做了如下更改,但运气不好:
model=word2vec.word2vec.load\u word2vec\u format('./word2vec/pre-trained/GoogleNews-vectors-negative300.bin',binary=True)embedding=model.syn0 vocab\u size=embedding.shape[0]嵌入\u dim=embedding.shape[1]
。但上面给了我以下信息:
UserWarning:将稀疏索引转换为包含900000000个元素的稠密张量。这可能会消耗大量内存
,培训似乎在这一步挂起
  W = tf.Variable(
        tf.random_uniform([vocab_size, embedding_size], -1.0, 1.0),
        name="W")