TypeError:输入必须是BiRNN张量流的序列

时间:2019-01-05 13:11:12

标签: python tensorflow deep-learning

在传递形状为(16,3)的张量列表的输入时,列表的每个元素都是时间步长,我遇到了typeerror:输入必须是使用张量流0.12.1的序列。

嵌入具有100个维度和16个批处理大小以及800个时间步的单词,其具有与形状(16,100)相同的800张张量列表的结构。但是,我的新数据没有嵌入。因此,我有一个形状为(16,3)的210张(时间步长)列表。

self.enc_batch = tf.placeholder(tf.int32,[hps.batch_size, hps.enc_timesteps,3], name='enc_batch')
encoder_inputs = tf.unpack(tf.transpose(self.enc_batch,perm=[1,0,2]))
for layer_i in xrange(hps.enc_layers):
    cell_fw = tf.nn.rnn_cell.LSTMCell(3,initializer=tf.contrib.layers.xavier_initializer(uniform=True,seed=123),state_is_tuple=False)
    cell_bw = tf.nn.rnn_cell.LSTMCell(3,initializer=tf.contrib.layers.xavier_initializer(uniform=True,seed=123),state_is_tuple=False)
    (emb_encoder_inputs, fw_state, bw_state) = tf.nn.bidirectional_rnn(cell_fw, cell_bw, tf.to_float(encoder_inputs), dtype=tf.float32, sequence_length=enc_lens)

输出错误日志为:

  

回溯(最近一次通话最近):
文件“ seq2seq_attention.py”,   第231行,在
tf.app.run()
文件中   “ /home/suparna/evolutionary_network/swap_net_install/local/lib/python2.7/site-packages/tensorflow/python/platform/app.py”,   43行       sys.exit(main(sys.argv [:1] + flags_passthrough))
主文件“ seq2seq_attention.py”,第216行       setup_training(模型,批处理程序,re_vocab)
setup_training中的文件“ seq2seq_attention.py”,第100行       model.build_graph()
在build_graph中的文件“ ../model/seq2seq_attention_model.py”,第382行       self.add_seq2seq()
在add_seq2seq中,文件“ ../model/seq2seq_attention_model.py”,行217       sequence_length = enc_lens)
文件“ /home/suparna/evolutionary_network/swap_net_install/local/lib/python2.7/site-packages/tensorflow/python/ops/rnn.py”,   第530行,在bidirectional_rnn中引发TypeError(“输入必须为   sequence“)
TypeError:输入必须为序列

请帮助我为什么会发生此错误。

encoder_inputs是tf的210个元素的列表.tensor'seq2seq / unpack:0'shape =(16,3)dtype = int32。

0 个答案:

没有答案