'Single step.'

def single_step(self, obs, actions, prev_actions, greedy=False):

    batch_size = tf.shape(obs[0])[0]
    prev_internal_state = tf.zeros([batch_size, self.internal_dim])
    (output, next_state) = self.core(obs, prev_internal_state, prev_actions)
    (actions, logits, log_probs, entropy, self_kl) = self.sample_actions(output, actions=actions, greedy=greedy)
    return (next_state, tuple(actions), tuple(logits), tuple(log_probs), tuple(entropy), tuple(self_kl))
