class_docstr: Base class for policy distributions.
  
  Args:
      name (string): <span style="color:#0000C0"><b>internal use</b></span>.
      action_spec (specification): <span style="color:#0000C0"><b>internal use</b></span>.
      input_spec (specification): <span style="color:#0000C0"><b>internal use</b></span>.
      parameters_spec (specification): <span style="color:#0000C0"><b>internal use</b></span>.
      conditions_spec (specification): <span style="color:#0000C0"><b>internal use</b></span>.
class_docstr_tok: ["Base","class","for","policy","distributions",".","Args",":","name","(","string",")",":","<","span","style=","''","color",":","#","0000C0","''",">","<","b",">","internal","use","<","\/b",">","<","\/span",">",".","action_spec","(","specification",")",":","<","span","style=","''","color",":","#","0000C0","''",">","<","b",">","internal","use","<","\/b",">","<","\/span",">",".","input_spec","(","specification",")",":","<","span","style=","''","color",":","#","0000C0","''",">","<","b",">","internal","use","<","\/b",">","<","\/span",">",".","parameters_spec","(","specification",")",":","<","span","style=","''","color",":","#","0000C0","''",">","<","b",">","internal","use","<","\/b",">","<","\/span",">",".","conditions_spec","(","specification",")",":","<","span","style=","''","color",":","#","0000C0","''",">","<","b",">","internal","use","<","\/b",">","<","\/span",">","."]
code: def output_signature(self, *, function):
      shape = self.action_spec.shape
  
      if function == "action_value":
          return SignatureDict(
              singleton=TensorSpec(type="float", shape=shape).signature(
                  batched=True
              )
          )
  
      elif function == "entropy":
          return SignatureDict(
              singleton=TensorSpec(type="float", shape=shape).signature(
                  batched=True
              )
          )
  
      elif function == "kl_divergence":
          return SignatureDict(
              singleton=TensorSpec(type="float", shape=shape).signature(
                  batched=True
              )
          )
  
      elif function == "log_probability":
          return SignatureDict(
              singleton=TensorSpec(type="float", shape=shape).signature(
                  batched=True
              )
          )
  
      elif function == "mode":
          return SignatureDict(
              singleton=self.action_spec.signature(batched=True)
          )
  
      elif function == "parametrize":
          return SignatureDict(
              singleton=self.parameters_spec.signature(batched=True)
          )
  
      elif function == "sample":
          return SignatureDict(
              singleton=self.action_spec.signature(batched=True)
          )
  
      elif function == "state_value":
          return SignatureDict(
              singleton=TensorSpec(type="float", shape=shape).signature(
                  batched=True
              )
          )
  
      else:
          return super().output_signature(function=function)
  
file_path: tensorforce/tensorforce/core/distributions/distribution.py
imports: from tensorforce.core import Module, SignatureDict, TensorSpec, tf_function
label_desc: Use image node_id 4 for calling the Distribution obj's underlying member method code with example usage: obj.output_signature() and returns: SignatureDict, SignatureDict, SignatureDict, SignatureDict, SignatureDict, SignatureDict, SignatureDict, SignatureDict, super