'Computes the decoder outputs.'

def compute_output(self, cell_output):

    (att_scores, attention_context) = self.attention_fn(query=cell_output, keys=self.attention_keys, values=self.attention_values, values_length=self.attention_values_length)
    softmax_input = tf.contrib.layers.fully_connected(inputs=tf.concat([cell_output, attention_context], 1), num_outputs=self.cell.output_size, activation_fn=tf.nn.tanh, scope=u'attention_mix')
    logits = tf.contrib.layers.fully_connected(inputs=softmax_input, num_outputs=self.vocab_size, activation_fn=None, scope=u'logits')
    return (softmax_input, logits, att_scores, attention_context)
