'Return the topK results and new decoder states.'

def decode_topk(self, sess, latest_tokens, enc_top_states, dec_init_states):

    feed = {self._enc_top_states: enc_top_states, self._dec_in_state: np.squeeze(np.array(dec_init_states)), self._abstracts: np.transpose(np.array([latest_tokens])), self._abstract_lens: np.ones([len(dec_init_states)], np.int32)}
    results = sess.run([self._topk_ids, self._topk_log_probs, self._dec_out_state], feed_dict=feed)
    (ids, probs, states) = (results[0], results[1], results[2])
    new_states = [s for s in states]
    return (ids, probs, new_states)
