2016-11-29 71 views
0

我新的tensorflow和我对的在tensorflow sample code使用embedding_rnn_decoder一些问题。Tensorflow rnn_decoder用法:预期尺寸[1]在[0,0]的错误消息

这里是我的代码:

vocal_size = 407 
embedding_size = 200 

def decoder(input_,initial_state): 
    lstm = tf.nn.rnn_cell.LSTMCell(decoder_state_num,num_proj=vocab_size) 
    output,state=seq2seq.embedding_rnn_decoder(input_,initial_state,lstm,vocab_size,embedding_size,update_embedding_for_previous=True) 
    return output 

decoder_input = [tf.placeholder(tf.int32, shape=[None])] 
predict_result=decoder(decoder_input,encoder_output) 

,当我运行代码:

sess = tf.Session() 
sess.run(tf.initialize_all_variables()) 
sess.run(predict_result, feed_dict = {input: [input_one_hot[0]] , decoder_input[0]: label[0]}) 

input_one_hot:是1组* 24 np.array在它的元素一个6228大小的列表。我认为问题不在这里。 这是一个简单的DNN的输入,其输出被用作解码器的状态。我检查了形状,没有发现任何错误。

label[0]:是batch_size * 1 np.array的列表。

它会输出一个错误:

tensorflow/core/client/tensor_c_api.cc:485] Expected size[1] in [0, 0], but got 407 

现在看来似乎自动馈送以前的解码器输出到下一个时间步长的解码器的输入端(形状(,407)?)。但我没有设置boolean feed_previous为真...

我也尝试了不同类型的label feed_dict在decoder_input,但它只是不能工作。

我该修改哪些代码才能使用代码?

非常感谢!

回答

0

显然,某些形状不匹配,但很难从代码片断中知道哪些形状。如果您发布了整个错误消息,帮助会更容易。