          initializer = self._get_default_initializer(kwargs.pop("kernel_initializer", None))
          kwargs["kernel_initializer"] = initializer
          self._kwargs = kwargs
  
      @classmethod
      def _get_default_initializer(cls, initializer):
          """ Returns a default initializer of Convolutional Aware or he_uniform for convolutional
          layers.
  
          Parameters
          ----------
          initializer: :class:`keras.initializers.Initializer` or None
              The initializer that has been passed into the model. If this value is ``None`` then a
              default initializer will be returned based on the configuration choices, otherwise
              the given initializer will be returned.
  
          Returns
          -------
          :class:`keras.initializers.Initializer`
              The kernel initializer to use for this convolutional layer. Either the original given
              initializer, he_uniform or convolutional aware (if selected in config options)
          """
          if initializer is None:
              retval = ConvolutionAware() if _CONFIG["conv_aware_init"] else he_uniform()
              logger.debug("Set default kernel_initializer: %s", retval)
          else:
              retval = initializer
              logger.debug("Using model supplied initializer: %s", retval)
          return retval
  
      def __call__(self, inputs):
          """ Call the Faceswap Separable Convolutional 2D Block.
  
          Parameters
          ----------
 
</s> remove         Parameters
        ----------
        initializer: :class:`keras.initializers.Initializer` or None
            The initializer that has been passed into the model. If this value is ``None`` then a
            default initializer will be returned based on the configuration choices, otherwise
            the given initializer will be returned.
 </s> add class DepthwiseConv2D(KDepthwiseConv2d):  # pylint:disable=too-few-public-methods
    """ A standard Keras Depthwise Convolution 2D layer with parameters updated to be more
    appropriate for Faceswap architecture. </s> remove     @classmethod
    def _get_default_initializer(cls, initializer):
        """ Returns a default initializer of Convolutional Aware or he_uniform for convolutional
        layers.
 </s> add  </s> remove         Returns
        -------
        :class:`keras.initializers.Initializer`
            The kernel initializer to use for this convolutional layer. Either the original given
            initializer, he_uniform or convolutional aware (if selected in config options)
        """
        if initializer is None:
            retval = ConvolutionAware() if _CONFIG["conv_aware_init"] else he_uniform()
            logger.debug("Set default kernel_initializer: %s", retval)
        else:
            retval = initializer
            logger.debug("Using model supplied initializer: %s", retval)
        return retval
 </s> add     Parameters are the same, with the same defaults, as a standard
    :class:`keras.layers.DepthwiseConv2D` except where listed below. The default initializer is
    updated to `he_uniform` or `convolutional aware` based on user configuration settings.

    Parameters
    ----------
    padding: str, optional
        One of `"valid"` or `"same"` (case-insensitive). Default: `"same"`. Note that `"same"` is
        slightly inconsistent across backends with `strides` != 1, as described
        `here <https://github.com/keras-team/keras/pull/9473#issuecomment-372166860/>`_.
    check_icnr_init: `bool`, optional
        ``True`` if the user configuration options should be checked to apply ICNR initialization
        to the layer. This should only be passed in from :class:`UpscaleBlock` layers.
        Default: ``False``
    """
    def __init__(self, *args, padding="same", check_icnr_init=False, **kwargs):
        if kwargs.get("name", None) is None:
            kwargs["name"] = _get_name("dwconv2d")
        initializer = _get_default_initializer(kwargs.pop("depthwise_initializer", None))
        if check_icnr_init and _CONFIG["icnr_init"]:
            initializer = ICNR(initializer=initializer)
            logger.debug("Using ICNR Initializer: %s", initializer)
        super().__init__(*args, padding=padding, depthwise_initializer=initializer, **kwargs) </s> remove         initializer = self._get_default_initializer(kwargs.pop("kernel_initializer", None))
 </s> add         initializer = _get_default_initializer(kwargs.pop("kernel_initializer", None)) </s> remove         initializer = self._get_default_initializer(kwargs.pop("kernel_initializer", None))
 </s> add         initializer = _get_default_initializer(kwargs.pop("kernel_initializer", None))
          initializer = self._get_default_initializer(kwargs.pop("kernel_initializer", None))
          kwargs["kernel_initializer"] = initializer
          self._kwargs = kwargs
  


























      def __call__(self, inputs):
          """ Call the Faceswap Separable Convolutional 2D Block.
  
          Parameters
          ----------
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 lib.model - Maintenance
  - Add Depthwise option to Conv Block
  - Add Swish Activation function
  - remove res_block_follows and add_instance_norm_args
  - Add explicit normalization and activation args
  - Add K.resize_images layer
plugins.train.model - Inference creation bugfix 
lib/model/nn_blocks.py