我想计算LSTM

时间:2017-12-08 16:16:46

标签: machine-learning tensorflow deep-learning

我正在使用LSTM编写分类问题程序。 但是,我不知道如何用LSTM的所有输出计算交叉熵。 这是我的计划的一部分。

cell_fw = tf.nn.rnn_cell.LSTMCell(num_hidden)
cell_bw = tf.nn.rnn_cell.LSTMCell(num_hidden)
outputs, _ = tf.nn.bidirectional_dynamic_rnn(cell_fw,cell_bw,inputs = inputs3, dtype=tf.float32,sequence_length= seq_len)

outputs = tf.concat(outputs,axis=2)

#outputs [batch_size,max_timestep,num_features]
outputs = tf.reshape(outputs, [-1, num_hidden*2])

W = tf.Variable(tf.truncated_normal([num_hidden*2,
                                     num_classes],
                                    stddev=0.1))

b = tf.Variable(tf.constant(0., shape=[num_classes]))

logits = tf.matmul(outputs, W) + b

如何对此应用crossentropy错误? 我应该创建一个向量,表示与每个批次的max_timestep数相同的类,并用它计算错误吗?

1 个答案:

答案 0 :(得分:0)

您是否查看了cross_entropy文档:https://www.tensorflow.org/api_docs/python/tf/losses/softmax_cross_entropy

onehot_labels的维度应该回答您的问题。