class_docstr: An episodic ReplayBuffer with Uniform sampling.
class_docstr_tok: ["An","episodic","ReplayBuffer","with","Uniform","sampling","."]
docstr: Gets the current steps of the episode_id.
  
  Args:
    episode_id: A Tensor with the episode_id.
  
  Returns:
    A nested tuple/list of Tensors with all the items/steps of the episode.
    Each Tensor has shape `(episode_length,) + TensorSpec.shape`.
  
  Raises:
    InvalidArgumentException: (at runtime) if episode_id is not valid.
code: def _get_episode(self, episode_id):
      """Gets the current steps of the episode_id.
  
      Args:
        episode_id: A Tensor with the episode_id.
  
      Returns:
        A nested tuple/list of Tensors with all the items/steps of the episode.
        Each Tensor has shape `(episode_length,) + TensorSpec.shape`.
  
      Raises:
        InvalidArgumentException: (at runtime) if episode_id is not valid.
      """
      with tf.device(self._device), tf.name_scope("get_episode"):
          episode_id = tf.convert_to_tensor(
              episode_id, dtype=tf.int64, name="episode_id"
          )
          episode_location = self._get_episode_id_location(episode_id)
          # Accessing episode_id may modify _episodes_loc_to_id_map upstream, so
          # ensure that we've performed that modification *first*.
          with tf.control_dependencies([episode_id]):
              episode_at_location = self._episodes_loc_to_id_map[
                  episode_location
              ]
          episode_valid = tf.equal(episode_at_location, episode_id)
          assert_valid = tf.Assert(
              episode_valid,
              [
                  "Episode id",
                  episode_id,
                  "is not valid.  It points to location",
                  episode_location,
                  "but the episode at that location is currently id",
                  episode_at_location,
              ],
          )
          with tf.control_dependencies(
              [assert_valid, episode_location]
          ):
              return self._data_table.get_episode_values(
                  episode_location
              )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
  import gin
  import tensorflow
  from tf_agents import specs
  from tf_agents.replay_buffers import episodic_table
  from tf_agents.replay_buffers import replay_buffer
  from tf_agents.replay_buffers import table
  from tf_agents.utils import common
  from tensorflow.python.data.util import nest
  from tensorflow.python.layers import utils
  from tensorflow.python.ops import list_ops
  from tensorflow.python.ops.distributions import util
label_desc: Use image node_id 16 for calling the EpisodicReplayBuffer obj's underlying member method code with example usage: obj._get_episode(episode_id) and returns: self