class_docstr: Groups wrapped layer call functions.
  
  This is used to ensure that all layer call functions are traced with the same
  inputs-
    - call
    - call_and_return_conditional_losses
    - call_and_return_all_conditional_losses
class_docstr_tok: ["Groups","wrapped","layer","call","functions",".","This","is","used","to","ensure","that","all","layer","call","functions","are","traced","with","the","same","inputs-","-","call","-","call_and_return_conditional_losses","-","call_and_return_all_conditional_losses"]
code: def __init__(self, layer):
      self.layer = layer
  
      self.layer_call_method = _get_layer_call_method(layer)
      self._expects_training_arg = utils.layer_uses_training_bool(layer)
      self._training_arg_index = utils.get_training_arg_index(
          self.layer_call_method
      )
  
      # If the layer call function has kwargs, then the traced function cannot
      # have an input signature.
      arg_spec = tf_inspect.getfullargspec(self.layer_call_method)
      self._has_kwargs = bool(
          self._expects_training_arg
          or arg_spec.defaults
          or arg_spec.kwonlyargs
          or arg_spec.varkw
      )
  
      self._input_signature = self._generate_input_signature(layer)
      self._functions = weakref.WeakValueDictionary()
  
      # Get the input argument name from the args.
      args = arg_spec.args
      if tf_inspect.ismethod(self.layer_call_method):
          args = args[1:]
      self._input_arg_name = args[0] if args else "inputs"
  
imports: import functools
  import threading
  import weakref
  from tensorflow.python.eager import def_function
  from tensorflow.python.framework import tensor_shape
  from tensorflow.python.framework import tensor_spec
  from tensorflow.python.keras import backend
  from tensorflow.python.keras.engine import base_layer_utils
  from tensorflow.python.keras.engine import input_spec
  from tensorflow.python.keras.mixed_precision import autocast_variable
  from tensorflow.python.keras.saving import saving_utils
  from tensorflow.python.keras.saving.saved_model import constants
  from tensorflow.python.keras.saving.saved_model import load
  from tensorflow.python.keras.saving.saved_model import serialized_attributes
  from tensorflow.python.keras.saving.saved_model import utils
  from tensorflow.python.keras.utils import tf_contextlib
  from tensorflow.python.keras.utils import tf_inspect
  from tensorflow.python.keras.utils import tf_utils
  from tensorflow.python.keras.utils import version_utils
  from tensorflow.python.keras.utils.generic_utils import LazyLoader
  from tensorflow.python.platform import tf_logging
  from tensorflow.python.trackable import data_structures
  from tensorflow.python.util import nest
  from tensorflow.python.util import tf_decorator
label_desc: Use image node_id 1 to create a new LayerCallCollection object from inherited base classes: object with example: obj = LayerCallCollection(layer)