          self.input_spec = [InputSpec(shape=input_shape)]
          super(ReflectionPadding2D, self).build(input_shape)
  
      def compute_output_shape(self, input_shape):
          """ If you are using "channels_last" configuration"""
          input_shape = self.input_spec[0].shape
          in_width, in_height = input_shape[2], input_shape[1]
          kernel_width, kernel_height = self.kernel_size, self.kernel_size
  
          if (in_height % self.stride) == 0:
 
</s> remove         super(ReflectionPadding2D, self).build(input_shape)
 </s> add         super().build(input_shape) </s> remove     def call(self, x, mask=None):
 </s> add     def call(self, x, mask=None):  # pylint:disable=unused-argument,arguments-differ
        """This is where the layer's logic lives.

        Parameters
        ----------
        inputs: tensor
            Input tensor, or list/tuple of input tensors
        kwargs: dict
            Additional keyword arguments

        Returns
        -------
        tensor
            A tensor or list/tuple of tensors
        """ </s> remove         super(ReflectionPadding2D, self).__init__(**kwargs)
 </s> add         super().__init__(**kwargs) </s> remove             padding_width = max(kernel_width- (in_width % self.stride), 0)
 </s> add             padding_width = max(kernel_width - (in_width % self.stride), 0) </s> remove             padding_width = max(kernel_width- (in_width % self.stride), 0)
 </s> add             padding_width = max(kernel_width - (in_width % self.stride), 0)
        """Computes the output shape of the layer.

        Assumes that the layer will be built to match that input shape provided.

        Parameters
        ----------
        input_shape: tuple or list of tuples
            Shape tuple (tuple of integers) or list of shape tuples (one per output tensor of the
            layer).  Shape tuples can include None for free dimensions, instead of an integer.

        Returns
        -------
        tuple
            An input shape tuple
        """
          self.input_spec = [InputSpec(shape=input_shape)]
          super(ReflectionPadding2D, self).build(input_shape)
  
      def compute_output_shape(self, input_shape):
        """Computes the output shape of the layer.

        Assumes that the layer will be built to match that input shape provided.

        Parameters
        ----------
        input_shape: tuple or list of tuples
            Shape tuple (tuple of integers) or list of shape tuples (one per output tensor of the
            layer).  Shape tuples can include None for free dimensions, instead of an integer.

        Returns
        -------
        tuple
            An input shape tuple
        """
          input_shape = self.input_spec[0].shape
          in_width, in_height = input_shape[2], input_shape[1]
          kernel_width, kernel_height = self.kernel_size, self.kernel_size
  
          if (in_height % self.stride) == 0:
keep keep keep keep replace keep keep keep keep keep
 Simple backend unit tests (#1020)

* Add simple backend tests for lib.model
* Document lib.model
* Fix GMSD Loss for AMD
* Remove obsolete code from lib.model 
lib/model/layers.py