class_docstr: Layer to be used as an entry point into a Network (a graph of layers).
  
  It can either wrap an existing tensor (pass an `input_tensor` argument)
  or create a placeholder tensor (pass arguments `input_shape`, and
  optionally, `dtype`).
  
  It is generally recommend to use the functional layer API via `Input`,
  (which creates an `InputLayer`) without directly using `InputLayer`.
  
  When using InputLayer with Keras Sequential model, it can be skipped by
  moving the input_shape parameter to the first layer after the InputLayer.
  
  This class can create placeholders for tf.Tensors, tf.SparseTensors, and
  tf.RaggedTensors by choosing 'sparse=True' or 'ragged=True'. Note that
  'sparse' and 'ragged' can't be configured to True at same time.
  Usage:
  
  ```python
  # With explicit InputLayer.
  model = tf.keras.Sequential([
    tf.keras.layers.InputLayer(input_shape=(4,)),
    tf.keras.layers.Dense(8)])
  model.compile(tf.optimizers.RMSprop(0.001), loss='mse')
  model.fit(np.zeros((10, 4)),
            np.ones((10, 8)))
  
  # Without InputLayer and let the first layer to have the input_shape.
  # Keras will add a input for the model behind the scene.
  model = tf.keras.Sequential([
    tf.keras.layers.Dense(8, input_shape=(4,))])
  model.compile(tf.optimizers.RMSprop(0.001), loss='mse')
  model.fit(np.zeros((10, 4)),
            np.ones((10, 8)))
  ```
  
  Args:
      input_shape: Shape tuple (not including the batch axis), or `TensorShape`
        instance (not including the batch axis).
      batch_size: Optional input batch size (integer or None).
      dtype: Optional datatype of the input. When not provided, the Keras
          default float type will be used.
      input_tensor: Optional tensor to use as layer input. If set, the layer
          will use the `tf.TypeSpec` of this tensor rather
          than creating a new placeholder tensor.
      sparse: Boolean, whether the placeholder created is meant to be sparse.
          Default to False.
      ragged: Boolean, whether the placeholder created is meant to be ragged.
          In this case, values of 'None' in the 'shape' argument represent
          ragged dimensions. For more information about RaggedTensors, see
          [this guide](https://www.tensorflow.org/guide/ragged_tensors).
          Default to False.
      type_spec: A `tf.TypeSpec` object to create Input from. This `tf.TypeSpec`
          represents the entire batch. When provided, all other args except
          name must be None.
      name: Optional name of the layer (string).
class_docstr_tok: ["Layer","to","be","used","as","an","entry","point","into","a","Network","(","a","graph","of","layers",")",".","It","can","either","wrap","an","existing","tensor","(","pass","an","`","input_tensor","`","argument",")","or","create","a","placeholder","tensor","(","pass","arguments","`","input_shape","`",",","and","optionally",",","`","dtype","`",")",".","It","is","generally","recommend","to","use","the","functional","layer","API","via","`","Input","`",",","(","which","creates","an","`","InputLayer","`",")","without","directly","using","`","InputLayer","`",".","When","using","InputLayer","with","Keras","Sequential","model",",","it","can","be","skipped","by","moving","the","input_shape","parameter","to","the","first","layer","after","the","InputLayer",".","This","class","can","create","placeholders","for","tf.Tensors",",","tf.SparseTensors",",","and","tf.RaggedTensors","by","choosing","'sparse=True","'","or","'ragged=True","'",".","Note","that","'sparse","'","and","'ragged","'","ca","n't","be","configured","to","True","at","same","time",".","Usage",":","``","`","python","#","With","explicit","InputLayer",".","model","=","tf.keras.Sequential","(","[","tf.keras.layers.InputLayer","(","input_shape=","(","4",",",")",")",",","tf.keras.layers.Dense","(","8",")","]",")","model.compile","(","tf.optimizers.RMSprop","(","0.001",")",",","loss='mse","'",")","model.fit","(","np.zeros","(","(","10",",","4",")",")",",","np.ones","(","(","10",",","8",")",")",")","#","Without","InputLayer","and","let","the","first","layer","to","have","the","input_shape",".","#","Keras","will","add","a","input","for","the","model","behind","the","scene",".","model","=","tf.keras.Sequential","(","[","tf.keras.layers.Dense","(","8",",","input_shape=","(","4",",",")",")","]",")","model.compile","(","tf.optimizers.RMSprop","(","0.001",")",",","loss='mse","'",")","model.fit","(","np.zeros","(","(","10",",","4",")",")",",","np.ones","(","(","10",",","8",")",")",")","``","`","Args",":","input_shape",":","Shape","tuple","(","not","including","the","batch","axis",")",",","or","`","TensorShape","`","instance","(","not","including","the","batch","axis",")",".","batch_size",":","Optional","input","batch","size","(","integer","or","None",")",".","dtype",":","Optional","datatype","of","the","input",".","When","not","provided",",","the","Keras","default","float","type","will","be","used",".","input_tensor",":","Optional","tensor","to","use","as","layer","input",".","If","set",",","the","layer","will","use","the","`","tf.TypeSpec","`","of","this","tensor","rather","than","creating","a","new","placeholder","tensor",".","sparse",":","Boolean",",","whether","the","placeholder","created","is","meant","to","be","sparse",".","Default","to","False",".","ragged",":","Boolean",",","whether","the","placeholder","created","is","meant","to","be","ragged",".","In","this","case",",","values","of","'None","'","in","the","'shape","'","argument","represent","ragged","dimensions",".","For","more","information","about","RaggedTensors",",","see","[","this","guide","]","(","https",":","\/\/www.tensorflow.org\/guide\/ragged_tensors",")",".","Default","to","False",".","type_spec",":","A","`","tf.TypeSpec","`","object","to","create","Input","from",".","This","`","tf.TypeSpec","`","represents","the","entire","batch",".","When","provided",",","all","other","args","except","name","must","be","None",".","name",":","Optional","name","of","the","layer","(","string",")","."]
code: def _trackable_saved_model_saver(self):
      return layer_serialization.InputLayerSavedModelSaver(self)
  
file_path: tensorflow/tensorflow/python/keras/engine/input_layer.py
imports: from tensorflow.python.distribute import distribute_lib
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor_shape
  from tensorflow.python.framework import tensor_spec
  from tensorflow.python.keras import backend
  from tensorflow.python.keras.distribute import distributed_training_utils
  from tensorflow.python.keras.engine import base_layer
  from tensorflow.python.keras.engine import keras_tensor
  from tensorflow.python.keras.engine import node
  from tensorflow.python.keras.saving.saved_model import layer_serialization
  from tensorflow.python.keras.utils import tf_utils
label_desc: Use image node_id 3 for calling the InputLayer obj's underlying member method code with example usage: obj._trackable_saved_model_saver() and returns: layer_serialization