class_docstr: Base class for memories.
  
  Args:
      device (string): Device name
          (<span style="color:#00C000"><b>default</b></span>: inherit value of parent module).
      l2_regularization (float >= 0.0): Scalar controlling L2 regularization
          (<span style="color:#00C000"><b>default</b></span>: inherit value of parent module).
      name (string): <span style="color:#0000C0"><b>internal use</b></span>.
      values_spec (specification): <span style="color:#0000C0"><b>internal use</b></span>.
      min_capacity (int >= 0): <span style="color:#0000C0"><b>internal use</b></span>.
code: def output_signature(self, *, function):
      if function == "enqueue":
          return SignatureDict(
              singleton=TensorSpec(type="bool", shape=()).signature(
                  batched=False
              )
          )
  
      elif function == "predecessors":
  
          def get_output_signature(sequence_values, initial_values):
              if len(sequence_values) == 0:
                  if len(initial_values) == 0:
                      return SignatureDict(
                          singleton=TensorSpec(
                              type="int", shape=()
                          ).signature(batched=True)
                      )
                  else:
                      return SignatureDict(
                          lengths=TensorSpec(
                              type="int", shape=()
                          ).signature(batched=True),
                          initial_values=self.values_spec[
                              initial_values
                          ].signature(batched=True),
                      )
              elif len(initial_values) == 0:
                  return SignatureDict(
                      starts_lengths=TensorSpec(
                          type="int", shape=(2,)
                      ).signature(batched=True),
                      sequence_values=self.values_spec[
                          sequence_values
                      ].signature(batched=True),
                  )
              else:
                  return SignatureDict(
                      starts_lengths=TensorSpec(
                          type="int", shape=(2,)
                      ).signature(batched=True),
                      sequence_values=self.values_spec[
                          sequence_values
                      ].signature(batched=True),
                      initial_values=self.values_spec[
                          initial_values
                      ].signature(batched=True),
                  )
  
          return get_output_signature
  
      elif function == "reset":
          return SignatureDict(
              singleton=TensorSpec(type="bool", shape=()).signature(
                  batched=False
              )
          )
  
      elif function == "retrieve":
  
          def get_output_signature(values):
              return SignatureDict(
                  singleton=self.values_spec[values].signature(
                      batched=True
                  )
              )
  
          return get_output_signature
  
      elif function == "retrieve_episodes":
          return SignatureDict(
              singleton=TensorSpec(type="int", shape=()).signature(
                  batched=True
              )
          )
  
      elif function == "retrieve_timesteps":
          return SignatureDict(
              singleton=TensorSpec(type="int", shape=()).signature(
                  batched=True
              )
          )
  
      elif function == "successors":
  
          def get_output_signature(sequence_values, final_values):
              if len(sequence_values) == 0:
                  if len(final_values) == 0:
                      return SignatureDict(
                          singleton=TensorSpec(
                              type="int", shape=()
                          ).signature(batched=True)
                      )
                  else:
                      return SignatureDict(
                          lengths=TensorSpec(
                              type="int", shape=()
                          ).signature(batched=True),
                          final_values=self.values_spec[
                              final_values
                          ].signature(batched=True),
                      )
              elif len(final_values) == 0:
                  return SignatureDict(
                      starts_lengths=TensorSpec(
                          type="int", shape=(2,)
                      ).signature(batched=True),
                      sequence_values=self.values_spec[
                          sequence_values
                      ].signature(batched=True),
                  )
              else:
                  return SignatureDict(
                      starts_lengths=TensorSpec(
                          type="int", shape=(2,)
                      ).signature(batched=True),
                      sequence_values=self.values_spec[
                          sequence_values
                      ].signature(batched=True),
                      final_values=self.values_spec[
                          final_values
                      ].signature(batched=True),
                  )
  
          return get_output_signature
  
      else:
          return super().output_signature(function=function)
  
file_path: tensorforce/tensorforce/core/memories/memory.py
imports: from tensorforce.core import Module, SignatureDict, TensorSpec, tf_function
label_desc: Use image node_id 3 for calling the Memory obj's underlying member method code with example usage: obj.output_signature() and returns: SignatureDict, get_output_signature, SignatureDict, get_output_signature, SignatureDict, SignatureDict, SignatureDict, SignatureDict, SignatureDict, SignatureDict, SignatureDict, get_output_signature, super, SignatureDict, SignatureDict, SignatureDict, SignatureDict