class_docstr: A table that can store Episodes of variable length.
class_docstr_tok: ["A","table","that","can","store","Episodes","of","variable","length","."]
docstr: Returns ops for appending a single frame value to the given rows.
  
  This operation is batch-aware.
  
  Args:
    rows: A list/tensor of location(s) to write values at.
    values: A nest of Tensors to write. If rows has more than one element,
      values can have an extra first dimension representing the batch size.
      Values must have the same structure as the tensor_spec of this class
      Must have batch dimension matching the number of rows.
  
  Returns:
    Ops for appending values at rows.
docstr_tok: ["Returns","ops","for","appending","a","single","frame","value","to","the","given","rows",".","This","operation","is","batch-aware",".","Args",":","rows",":","A","list\/tensor","of","location","(","s",")","to","write","values","at",".","values",":","A","nest","of","Tensors","to","write",".","If","rows","has","more","than","one","element",",","values","can","have","an","extra","first","dimension","representing","the","batch","size",".","Values","must","have","the","same","structure","as","the","tensor_spec","of","this","class","Must","have","batch","dimension","matching","the","number","of","rows",".","Returns",":","Ops","for","appending","values","at","rows","."]
code: def add(self, rows, values):
      """Returns ops for appending a single frame value to the given rows.
  
      This operation is batch-aware.
  
      Args:
        rows: A list/tensor of location(s) to write values at.
        values: A nest of Tensors to write. If rows has more than one element,
          values can have an extra first dimension representing the batch size.
          Values must have the same structure as the tensor_spec of this class
          Must have batch dimension matching the number of rows.
  
      Returns:
        Ops for appending values at rows.
      """
      rows = tf.convert_to_tensor(value=rows, dtype=tf.int64)
      flattened_values = tf.nest.flatten(values)
      write_ops = []
      for slot, value in zip(self._flattened_slots, flattened_values):
          var_slots = self._slot2variable_map[slot].lookup(rows)
          new_value = list_ops.tensor_list_push_back_batch(
              var_slots, value
          )
          write_ops.append(
              self._slot2variable_map[slot].insert_or_assign(
                  rows, new_value
              )
          )
      return tf.group(*write_ops)
  
file_path: agents/tf_agents/replay_buffers/episodic_table.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import tensorflow
  from tf_agents.utils import nest_utils
  from tensorflow.python.ops import list_ops
label_desc: Use image node_id 8 for calling the EpisodicTable obj's underlying member method code with example usage: obj.add(rows, values) and returns: tf