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,但它只是不能工作。
我该修改哪些代码才能使用代码?
非常感谢!