【发布时间】:2016-01-02 20:06:00
【问题描述】:
我正在尝试在 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() 是否接受张量值列表,或者是否有一些特殊的张量对象接受它们?
【问题讨论】:
标签: python list machine-learning tensorflow