          var_x = Conv2DBlock(self._filters * self._scale_factor * self._scale_factor,
                              self._kernel_size,
                              strides=(1, 1),
                              padding=self._padding,
                              use_instance_norm=self._use_instance_norm,
                              res_block_follows=self._res_block_follows,
                              name="{}_conv2d".format(self._name),
                              check_icnr_init=_CONFIG["icnr_init"],
                              **self._kwargs)(inputs)
          var_x = PixelShuffler(name="{}_pixelshuffler".format(self._name),
                                size=self._scale_factor)(var_x)
 
</s> remove         var_x = Conv2D(self._filters,
                       self._kernel_size,
                       strides=self._strides,
                       padding=self._padding,
                       name="{}_conv2d".format(self._name),
                       **self._kwargs)(inputs)
        if self._use_instance_norm:
 </s> add         conv = DepthwiseConv2D if self._use_depthwise else Conv2D
        var_x = conv(*self._args,
                     strides=self._strides,
                     padding=self._padding,
                     name="{}_{}conv2d".format(self._name, "dw" if self._use_depthwise else ""),
                     **self._kwargs)(inputs)
        # normalization
        if self._normalization == "instance": </s> remove                                     res_block_follows=self._res_block_follows,
 </s> add                                     activation=self._activation, </s> remove                                       res_block_follows=self._res_block_follows,
 </s> add                                       activation=self._activation, </s> remove         if not self._res_block_follows:
 </s> add         if self._normalization == "batch":
            var_x = BatchNormalization(axis=3, name="{}_batchnorm".format(self._name))(var_x)

        # activation
        if self._activation == "leakyrelu": </s> remove         var_x = Conv2DBlock(encoder_complexity * 2**(idx + 1))(var_x)
 </s> add         var_x = Conv2DBlock(encoder_complexity * 2**(idx + 1), activation="leakyrelu")(var_x)
                            normalization=self._normalization,
                            activation=self._activation,
          var_x = Conv2DBlock(self._filters * self._scale_factor * self._scale_factor,
                              self._kernel_size,
                              strides=(1, 1),
                              padding=self._padding,
                            normalization=self._normalization,
                            activation=self._activation,
                            normalization=self._normalization,
                            activation=self._activation,
                              name="{}_conv2d".format(self._name),
                              check_icnr_init=_CONFIG["icnr_init"],
                              **self._kwargs)(inputs)
          var_x = PixelShuffler(name="{}_pixelshuffler".format(self._name),
                                size=self._scale_factor)(var_x)
keep keep keep keep 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