class_docstr: Base class for Preprocessing Layers.
  
  **Don't use this class directly: it's an abstract base class!** You may
  be looking for one of the many built-in
  [preprocessing layers](https://keras.io/guides/preprocessing_layers/)
  instead.
  
  Preprocessing layers are layers whose state gets computed before model
  training starts. They do not get updated during training.
  Most preprocessing layers implement an `adapt()` method for state computation.
  
  The `PreprocessingLayer` class is the base class you would subclass to
  implement your own preprocessing layers.
  
  Attributes:
    streaming: Whether a layer can be adapted multiple times without resetting
      the state of the layer.
code: def _adapt_maybe_build(self, data):
      if not self.built:
          try:
              # If this is a Numpy array or tensor, we can get shape from .shape.
              # If not, an attribute error will be thrown.
              data_shape = data.shape
              data_shape_nones = tuple([None] * len(data.shape))
          except AttributeError:
              # The input has an unknown number of dimensions.
              data_shape = None
              data_shape_nones = None
  
          # TODO (b/159261555): move this to base layer build.
          batch_input_shape = getattr(self, "_batch_input_shape", None)
          if batch_input_shape is None:
              # Set the number of dimensions.
              self._batch_input_shape = data_shape_nones
          self.build(data_shape)
          self.built = True
  
imports: import abc
  import collections
  import numpy
  from tensorflow.python.eager import context
  from tensorflow.python.eager import def_function
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.framework import tensor
  from tensorflow.python.keras import backend
  from tensorflow.python.keras.engine import data_adapter
  from tensorflow.python.keras.engine.base_layer import Layer
  from tensorflow.python.keras.utils import tf_utils
  from tensorflow.python.keras.utils import version_utils
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import sparse_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.ops.ragged import ragged_tensor
  from tensorflow.python.trackable import base
label_desc: Use image node_id 13 for calling the PreprocessingLayer obj's underlying member method code with example usage: obj._adapt_maybe_build(data) without return types