【问题标题】:How to pass 3d Tensor to tensorflow RNN embedding_rnn_seq2seq如何将 3d 张量传递给 tensorflow RNN embedding_rnn_seq2seq
【发布时间】:2017-01-12 14:27:34
【问题描述】:

我正在尝试输入每个世界都有 word2vec 表示的句子。 如何在 tensorflow seq2seq 模型中做到这一点?

假设变量

enc_inp = [tf.placeholder(tf.int32, shape=(None,10), name="inp%i" % t)
       for t in range(seq_length)]

维度为 [num_of_observations 或 batch_size x word_vec_representation x sentense_lenght]。

当我将它传递给 embedding_rnn_seq2seq

decode_outputs, decode_state = seq2seq.embedding_rnn_seq2seq(
    enc_inp, dec_inp, stacked_lstm, 
    seq_length, seq_length, embedding_dim)

发生错误

ValueError: Linear is expecting 2D arguments: [[None, 10, 50], [None, 50]]

还有一个更复杂的问题 如何将向量而不是标量作为 RNN 的第一个单元格的输入?

现在它看起来像(当我们处理任何序列时)

  1. 获取序列的第一个值(标量)
  2. 计算第一层 RNN 第一层嵌入单元输出
  3. 计算第一层 RNN 第二层嵌入单元输出

但这是必需的:

  1. 获取序列(向量)的第一个值
  2. compute First layer RNN First layer cell output(当Input为向量时作为普通计算简单感知器)
  3. 计算第一层 RNN 第二层嵌入单元输出(当 Input 为向量时,与普通计算简单感知器一样)

【问题讨论】:

    标签: python tensorflow word2vec recurrent-neural-network


    【解决方案1】:

    主要的一点是: seq2seq 在自己内部进行词嵌入。 Here is reddit question and answer

    另外,如果 smbd 想要使用预训练的 Word2Vec,有办法做到这一点, 见:

    所以这不仅可以用于词嵌入

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多