      """
      def __init__(self, data_format=None, **kwargs):
          super().__init__(**kwargs)
          self.data_format = conv_utils.normalize_data_format(data_format)
          self.input_spec = keras.layers.InputSpec(ndim=4)
  
      def compute_output_shape(self, input_shape):
          """ Compute the output shape based on the input shape.
  
          Parameters
 
</s> remove class _GlobalPooling2D(keras.layers.Layer):  # type:ignore[name-defined]
    """Abstract class for different global pooling 2D layers.
 </s> add class SubPixelUpscaling(tf.keras.layers.Layer):
    """ Sub-pixel convolutional up-scaling layer. </s> remove         if self.data_format == 'channels_last':
            pooled = K.std(inputs, axis=[1, 2])
        else:
            pooled = K.std(inputs, axis=[2, 3])
        return pooled

 </s> add 
      """
      def __init__(self, data_format=None, **kwargs):
          super().__init__(**kwargs)
          self.data_format = conv_utils.normalize_data_format(data_format)

  
      def compute_output_shape(self, input_shape):
          """ Compute the output shape based on the input shape.
  
          Parameters
keep keep keep keep replace keep keep keep keep keep
 Training fixes:
  - Fix mixed precision layer storing and switching
  - typofix in _requirements_base.txt
  - lib.model.layers - cleanup, docs and tests fixes
  - lib.model.nn_blocks - typing fixes 
lib/model/layers.py