                  logger.debug("Skipping input layer: '%s'", name)
                  continue
              inbound = self._filter_node(layer["inbound_nodes"])
  
              if self._input_names.intersection(inbound):
                  # Strip the input inbound nodes for applying the correct input layer at compile
                  # time
                  logger.debug("Stripping inbound nodes for input '%s': %s", name, inbound)
                  inbound = ""
  
 
</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         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         var_x = Conv2DBlock(128, **kwargs)(var_x)
 </s> add         var_x = Conv2DBlock(128, activation="leakyrelu", **kwargs)(var_x) </s> remove     @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

 </s> add  </s> remove         var_x = Conv2DBlock(128, **kwargs)(var_x)
 </s> add         var_x = Conv2DBlock(128, activation="leakyrelu", **kwargs)(var_x)
            # TODO Currently any models which have a list input will not contain the main model
            # input. This may not be true in future (if the main input is injected into a layer
            # further down the model chain) so this should be made more robust
            if (not any(isinstance(inb, list) for inb in inbound)
                    and self._input_names.intersection(inbound)):
                  logger.debug("Skipping input layer: '%s'", name)
                  continue
              inbound = self._filter_node(layer["inbound_nodes"])
  
            # TODO Currently any models which have a list input will not contain the main model
            # input. This may not be true in future (if the main input is injected into a layer
            # further down the model chain) so this should be made more robust
            if (not any(isinstance(inb, list) for inb in inbound)
                    and self._input_names.intersection(inbound)):
                  # Strip the input inbound nodes for applying the correct input layer at compile
                  # time
                  logger.debug("Stripping inbound nodes for input '%s': %s", name, inbound)
                  inbound = ""
  
keep keep keep keep 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 
plugins/train/model/_base.py