def create_atomic_observe_operations(self, states, actions, internals, terminal, reward, index):
<EOL>num_episodes = tf.count_nonzero(input_tensor=terminal, dtype=util.tf_dtype('<STR_LIT:int>'))<EOL>increment_episode = tf.assign_add(ref=self.episode, value=tf.to_int64(x=num_episodes))<EOL>increment_global_episode = tf.assign_add(ref=self.global_episode, value=tf.to_int64(x=num_episodes))<EOL>with tf.control_dependencies(control_inputs=(increment_episode, increment_global_episode)):<EOL><INDENT>states = util.map_tensors(fn=tf.stop_gradient, tensors=states)<EOL>internals = util.map_tensors(fn=tf.stop_gradient, tensors=internals)<EOL>actions = util.map_tensors(fn=tf.stop_gradient, tensors=actions)<EOL>terminal = tf.stop_gradient(input=terminal)<EOL>reward = tf.stop_gradient(input=reward)<EOL>observation = self.fn_observe_timestep(<EOL>states=states,<EOL>internals=internals,<EOL>actions=actions,<EOL>terminal=terminal,<EOL>reward=reward<EOL>)<EOL><DEDENT>with tf.control_dependencies(control_inputs=(observation,)):<EOL><INDENT>self.unbuffered_episode_output = self.global_episode + <NUM_LIT:0><EOL><DEDENT>
Returns the tf op to fetch when unbuffered observations are passed in.

Args:
    states (any): One state (usually a value tuple) or dict of states if multiple states are expected.
    actions (any): One action (usually a value tuple) or dict of states if multiple actions are expected.
    internals (any): Internal list.
    terminal (bool): boolean indicating if the episode terminated after the observation.
    reward (float): scalar reward that resulted from executing the action.

Returns: Tf op to fetch when `observe()` is called.