我正在尝试使用Tensor Flow中的LSTM.我在网上找到了一个教程,其中包含一组序列,目标函数由LSTM的最后一个输出和已知值组成.但是,我希望我的目标函数使用每个输出的信息.具体来说,我试图让LSTM学习一系列序列(即在一个句子中学习单词中的所有字母):
cell = rnn_cell.BasicLSTMCell(num_units) inputs = [tf.placeholder(tf.float32,shape=[batch_size,input_size]) for _ in range(seq_len)] result = [tf.placeholder(tf.float32, shape=[batch_size,input_size]) for _ in range(seq_len)] W_o = tf.Variable(tf.random_normal([num_units,input_size], stddev=0.01)) b_o = tf.Variable(tf.random_normal([input_size], stddev=0.01)) outputs, states = rnn.rnn(cell, inputs, dtype=tf.float32) losses = [] for i in xrange(len(outputs)): final_transformed_val = tf.matmul(outputs[i],W_o) + b_o losses.append(tf.nn.softmax(final_transformed_val)) cost = tf.reduce_mean(losses)
这样做会导致错误:
TypeError: List of Tensors when single Tensor expected
我该如何解决这个问题?是否tf.reduce_mean()
采用张量值列表,还是有一些特殊的张量对象需要它们?