      -------
      tensor
          The output tensor from the Upscale layer
      """
      def __init__(self, filters, kernel_size=3, padding="same", **kwargs):
          self._name = _get_name(f"residual_{filters}")
          logger.debug("name: %s, filters: %s, kernel_size: %s, padding: %s, kwargs: %s)",
                       self._name, filters, kernel_size, padding, kwargs)
          self._use_reflect_padding = _CONFIG["reflect_padding"]
  
 
</s> remove                  filters,
                 kernel_size=3,
                 padding="same",
                 scale_factor=2,
                 normalization=None,
                 activation="leakyrelu",
                 **kwargs):
 </s> add                  filters: int,
                 kernel_size: Union[int, Tuple[int]] = 3,
                 padding: str = "same",
                 scale_factor: int = 2,
                 normalization: Optional[str] = None,
                 activation: Optional[str] = "leakyrelu",
                 **kwargs) -> None: </s> remove     def __init__(self, filters, kernel_size=3, padding="same", activation="leakyrelu",
                 scale_factor=2, interpolation="bilinear"):
 </s> add     def __init__(self,
                 filters: int,
                 kernel_size: Union[int, Tuple[int]] = 3,
                 padding: str = "same",
                 activation: str = "leakyrelu",
                 scale_factor: int = 2,
                 interpolation: str = "bilinear") -> None: </s> remove     def __init__(self, filters, kernel_size=3, padding="same", activation="leakyrelu",
                 interpolation="bilinear", sr_ratio=0.5, scale_factor=2, fast=False, **kwargs):
 </s> add     def __init__(self,
                 filters: int,
                 kernel_size: Union[int, Tuple[int]] = 3,
                 padding: str = "same",
                 activation: Optional[str] = "leakyrelu",
                 interpolation: str = "bilinear",
                 sr_ratio: float = 0.5,
                 scale_factor: int = 2,
                 fast: bool = False, **kwargs) -> None: </s> remove     def __call__(self, inputs):
 </s> add     def __call__(self, inputs: Tensor) -> Tensor: </s> remove     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``
 </s> add     is_upscale: `bool`, optional
        ``True`` if the convolution is being called from an upscale layer. This causes the instance
        to check the user configuration options to see if ICNR initialization has been selected and
        should be applied. This should only be passed in as ``True`` from :class:`UpscaleBlock`
        layers. Default: ``False``
    def __init__(self,
                 filters: int,
                 kernel_size: Union[int, Tuple[int]] = 3,
                 padding: str = "same",
                 **kwargs) -> None:
      -------
      tensor
          The output tensor from the Upscale layer
      """
    def __init__(self,
                 filters: int,
                 kernel_size: Union[int, Tuple[int]] = 3,
                 padding: str = "same",
                 **kwargs) -> None:
          self._name = _get_name(f"residual_{filters}")
          logger.debug("name: %s, filters: %s, kernel_size: %s, padding: %s, kwargs: %s)",
                       self._name, filters, kernel_size, padding, kwargs)
          self._use_reflect_padding = _CONFIG["reflect_padding"]
  
keep keep keep keep replace keep keep keep keep keep
 lib.model.nnblocks - typing + cleanup upscales 
lib/model/nn_blocks.py