                   **kwargs) -> None:
          super().__init__(**kwargs)
          self.data_format = conv_utils.normalize_data_format(data_format)
  
      def call(self, inputs: tf.Tensor, *args, **kwargs) -> tf.Tensor:
          """This is where the layer's logic lives.
  
          Parameters
          ----------
 
</s> remove         if self.data_format == 'channels_first':
            batch_size, channels, height, width = input_shape
            if batch_size is None:
                batch_size = -1
            r_height, r_width = self.size
            o_height, o_width = height * r_height, width * r_width
            o_channels = channels // (r_height * r_width)
 </s> add     def call(self, inputs: tf.Tensor, *args, **kwargs) -> tf.Tensor:
        """ Override to call the layer. </s> remove         self.input_spec = keras.layers.InputSpec(ndim=4)
 </s> add  </s> remove         self._kernel_size = kernel_size
 </s> add         self._kernel_size = (kernel_size,
                             kernel_size) if isinstance(kernel_size, int) else kernel_size </s> remove     def _load(self) -> keras.models.Model:
 </s> add     def _load(self) -> tf.keras.models.Model:
        self.size = conv_utils.normalize_tuple(size, 2, 'size')
                   **kwargs) -> None:
          super().__init__(**kwargs)
          self.data_format = conv_utils.normalize_data_format(data_format)
        self.size = conv_utils.normalize_tuple(size, 2, 'size')
  
      def call(self, inputs: tf.Tensor, *args, **kwargs) -> tf.Tensor:
          """This is where the layer's logic lives.
  
          Parameters
          ----------
keep keep add keep 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