parameters: (cls, function_spec, args, kwargs, class_instance)
return_statement: return CacheKey(function_spec, input_args_with_spec,
                          input_kwargs_with_spec, class_instance)
docstring: Generated a CacheKey instance by given inputs.
  
          Args:
              functions_spec(FunctionSpec): a FunctionSpec instance of decorated function.
              args(tuple): tuple of actual inputs arguments.
              kwargs(dict): dict of actual inputs keyword arguments.
              class_instance(object): a instance of class `Layer`.
docstring_summary: Generated a CacheKey instance by given inputs.
docstring_tokens: Generated a CacheKey instance by given inputs .
function: def from_func_and_args(cls, function_spec, args, kwargs, class_instance):
          """
          Generated a CacheKey instance by given inputs.
  
          Args:
              functions_spec(FunctionSpec): a FunctionSpec instance of decorated function.
              args(tuple): tuple of actual inputs arguments.
              kwargs(dict): dict of actual inputs keyword arguments.
              class_instance(object): a instance of class `Layer`.
          """
          # 1. filter `self` in args
          if args and isinstance(args[0], layers.Layer):
              args = args[1:]
          # 2. convert tensor and numpy array into InputSpec
          _args, _kwargs = function_spec.unified_args_and_kwargs(args, kwargs)
          input_args_with_spec, input_kwargs_with_spec = function_spec.args_to_input_spec(
              _args, _kwargs)
  
          # 3. check whether hit the cache or build a new program for the input arguments
          return CacheKey(function_spec, input_args_with_spec,
                          input_kwargs_with_spec, class_instance)
function_tokens: def from_func_and_args ( cls , function_spec , args , kwargs , class_instance ) : # 1. filter `self` in args if args and isinstance ( args [ 0 ] , layers . Layer ) : args = args [ 1 : ] # 2. convert tensor and numpy array into InputSpec _args , _kwargs = function_spec . unified_args_and_kwargs ( args , kwargs ) input_args_with_spec , input_kwargs_with_spec = function_spec . args_to_input_spec ( _args , _kwargs ) # 3. check whether hit the cache or build a new program for the input arguments return CacheKey ( function_spec , input_args_with_spec , input_kwargs_with_spec , class_instance )