code: def input_signature(self, *, function):
      if function == "baseline_loss":
          if self.separate_baseline:
              internals_signature = self.internals_spec[
                  "baseline"
              ].signature(batched=True)
          else:
              internals_signature = self.internals_spec[
                  "policy"
              ].signature(batched=True)
          if self.advantage_in_loss:
              assert False
          elif self.baseline_objective is None:
              return SignatureDict(
                  states=self.processed_states_spec.signature(
                      batched=True
                  ),
                  horizons=TensorSpec(type="int", shape=(2,)).signature(
                      batched=True
                  ),
                  internals=internals_signature,
                  auxiliaries=self.auxiliaries_spec.signature(
                      batched=True
                  ),
                  actions=self.actions_spec.signature(batched=True),
                  reward=self.reward_spec.signature(batched=True),
                  reference=self.objective.reference_spec().signature(
                      batched=True
                  ),
              )
          else:
              return SignatureDict(
                  states=self.processed_states_spec.signature(
                      batched=True
                  ),
                  horizons=TensorSpec(type="int", shape=(2,)).signature(
                      batched=True
                  ),
                  internals=internals_signature,
                  auxiliaries=self.auxiliaries_spec.signature(
                      batched=True
                  ),
                  actions=self.actions_spec.signature(batched=True),
                  reward=self.reward_spec.signature(batched=True),
                  reference=self.baseline_objective.reference_spec().signature(
                      batched=True
                  ),
              )
  
      elif function == "core_experience":
          return SignatureDict(
              states=self.processed_states_spec.signature(batched=True),
              internals=self.internals_spec.signature(batched=True),
              auxiliaries=self.auxiliaries_spec.signature(batched=True),
              actions=self.actions_spec.signature(batched=True),
              terminal=self.terminal_spec.signature(batched=True),
              reward=self.reward_spec.signature(batched=True),
          )
  
      elif function == "core_update":
          return SignatureDict()
  
      elif function == "experience":
          return SignatureDict(
              states=self.states_spec.signature(batched=True),
              internals=self.internals_spec.signature(batched=True),
              auxiliaries=self.auxiliaries_spec.signature(batched=True),
              actions=self.actions_spec.signature(batched=True),
              terminal=self.terminal_spec.signature(batched=True),
              reward=self.reward_spec.signature(batched=True),
          )
  
      elif function == "loss":
          if (
              self.baseline_objective is not None
              and self.baseline_loss_weight is not None
              and not self.baseline_loss_weight.is_constant(value=0.0)
          ):
              return SignatureDict(
                  states=self.processed_states_spec.signature(
                      batched=True
                  ),
                  horizons=TensorSpec(type="int", shape=(2,)).signature(
                      batched=True
                  ),
                  internals=self.internals_spec.signature(batched=True),
                  auxiliaries=self.auxiliaries_spec.signature(
                      batched=True
                  ),
                  actions=self.actions_spec.signature(batched=True),
                  reward=self.reward_spec.signature(batched=True),
                  reference=SignatureDict(
                      policy=self.objective.reference_spec().signature(
                          batched=True
                      ),
                      baseline=self.baseline_objective.reference_spec().signature(
                          batched=True
                      ),
                  ),
              )
          elif self.baseline_optimizer is None:
              return SignatureDict(
                  states=self.processed_states_spec.signature(
                      batched=True
                  ),
                  horizons=TensorSpec(type="int", shape=(2,)).signature(
                      batched=True
                  ),
                  internals=self.internals_spec.signature(batched=True),
                  auxiliaries=self.auxiliaries_spec.signature(
                      batched=True
                  ),
                  actions=self.actions_spec.signature(batched=True),
                  reward=self.reward_spec.signature(batched=True),
                  reference=self.objective.reference_spec().signature(
                      batched=True
                  ),
              )
          else:
              return SignatureDict(
                  states=self.processed_states_spec.signature(
                      batched=True
                  ),
                  horizons=TensorSpec(type="int", shape=(2,)).signature(
                      batched=True
                  ),
                  internals=self.internals_spec["policy"].signature(
                      batched=True
                  ),
                  auxiliaries=self.auxiliaries_spec.signature(
                      batched=True
                  ),
                  actions=self.actions_spec.signature(batched=True),
                  reward=self.reward_spec.signature(batched=True),
                  reference=self.objective.reference_spec().signature(
                      batched=True
                  ),
              )
  
      elif function == "regularize":
          return SignatureDict(
              states=self.processed_states_spec.signature(batched=True),
              horizons=TensorSpec(type="int", shape=(2,)).signature(
                  batched=True
              ),
              internals=self.internals_spec["policy"].signature(
                  batched=True
              ),
              auxiliaries=self.auxiliaries_spec.signature(batched=True),
          )
  
      elif function == "update":
          return SignatureDict()
  
      else:
          return super().input_signature(function=function)
  
imports: import logging
  import tensorflow
  from tensorforce import TensorforceError
  from tensorforce.core import ModuleDict, memory_modules, optimizer_modules, parameter_modules, SignatureDict, TensorDict, TensorSpec, TensorsSpec, tf_function, tf_util, VariableDict
  from tensorforce.core.models import Model
  from tensorforce.core.networks import Preprocessor
  from tensorforce.core.objectives import objective_modules
  from tensorforce.core.policies import policy_modules, StochasticPolicy
label_desc: Use image node_id 7 for calling the TensorforceModel obj's underlying member method code with example usage: obj.input_signature() and returns: SignatureDict, SignatureDict, SignatureDict, SignatureDict, SignatureDict, SignatureDict, SignatureDict, SignatureDict, SignatureDict, SignatureDict, super