2016-04-09 12 views
2

私は単語ごとにベクトルを含む単語埋め込み行列を持っています。私はTensorFlowを使用して、埋め込みベクトルが与えられたときに各単語の双方向LSTMエンコーディングを取得しようとしています。残念ながら、私は、次のエラーメッセージが出ます:ここで単語埋め込みのTensorFlow双方向LSTM符号化

ValueError: Shapes (1, 125) and() must have the same rank Exception TypeError: TypeError("'NoneType' object is not callable",) in ignored

を私が使用するコードです:

 # Declare max number of words in a sentence 
    self.max_len = 100 
    # Declare number of dimensions for word embedding vectors 
    self.wdims = 100 

    # Indices of words in the sentence 
    self.wrd_holder = tf.placeholder(tf.int32, [self.max_len]) 
    # Embedding Matrix 
    wrd_lookup = tf.Variable(tf.truncated_normal([len(vocab)+3, self.wdims], stddev=1.0/np.sqrt(self.wdims))) 

    # Declare forward and backward cells 
    forward = rnn_cell.LSTMCell(125, (self.wdims)) 
    backward = rnn_cell.LSTMCell(125, (self.wdims)) 

    # Perform lookup 
    wrd_embd = tf.nn.embedding_lookup(wrd_lookup, self.wrd_holder) 
    embd = tf.split(0, self.max_len, wrd_embd) 

    # run bidirectional LSTM 
    boutput = rnn.bidirectional_rnn(forward, backward, embd, dtype=tf.float32, sequence_length=self.max_len) 

答えて

2

RNNに渡された配列の長さは、長さバッチサイズのベクトルでなければなりません。

+1

これは質問に対する答えを提供しません。十分な[評判](http://stackoverflow.com/help/whats-reputation)があれば、[任意の投稿にコメントする]ことができます(http://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの説明を必要としない回答を提供する](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [レビューから](レビュー/低品質の投稿/ 11959085) –

+2

明確にするために、sequence_lengthとしてmax_lenを使用します。これはスカラーです。それを渡さないか、予想されるベクトルである[max_len] * batch_sizeを渡します。 –

関連する問題