class_docstr: Base class for PreprocessingLayers that do computation using a Combiner.
  
  This class provides several helper methods to make creating a
  PreprocessingLayer easier. It assumes that the core of your computation will
  be done via a Combiner object. Subclassing this class to create a
  PreprocessingLayer allows your layer to be compatible with distributed
  computation.
  
  This class is compatible with Tensorflow 2.0+.
code: def update_state(self, data):
      if self._adapt_accumulator is None:
          self._adapt_accumulator = self._get_accumulator()
      self._adapt_accumulator = self._combiner.compute(
          data, self._adapt_accumulator
      )
  
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 3 for calling the CombinerPreprocessingLayer obj's underlying member method code with example usage: obj.update_state(data) without return types