に私は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))を供給するように思えます。しかし、私はboolen feed_previous
をTrueに設定していませんでした。
また、デコーダ入力にlabel
という種類のfeed_dictを試しましたが、うまく動作しません。
コードを変更するにはどうすればよいですか?
ありがとうございます!