2017-12-08 3 views
0

Ich verwende LSTM ein Programm von Klassifikationsproblem zu schreiben. Ich weiß jedoch nicht, wie man die Kreuzentropie mit der gesamten Ausgabe von LSTM berechnet. Hier ist ein Teil meines Programms.möchte ich an allen Ausgängen von LSTM Kreuzentropie berechnen

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 

Wie kann ich crossentropy Fehler dies gilt? Sollte ich einen Vektor erstellen, der die gleiche Klasse wie die Anzahl von max_timestep für jeden Stapel darstellt, und den Fehler damit berechnen?

Antwort

Verwandte Themen