          self.kernel_size = kernel_size
          self.k1 = k1
          self.k2 = k2
          self.max_value = max_value
          self.c_1 = (self.k1 * self.max_value) ** 2
          self.c_2 = (self.k2 * self.max_value) ** 2
          self.dim_ordering = K.image_data_format()
          self.backend = K.backend()
  
      @staticmethod
      def __int_shape(x):
 
</s> remove         self.k1 = k1
        self.k2 = k2
 </s> add         self.k_1 = k_1
        self.k_2 = k_2 </s> remove     def make_kernel(sigma):
 </s> add     def _make_kernel(sigma):
        """ Make the gaussian kernel. """ </s> remove     SOFTWARE. """
    # pylint: disable=C0103
    def __init__(self, k1=0.01, k2=0.03, kernel_size=3, max_value=1.0):
        """
        Difference of Structural Similarity (DSSIM loss function). Clipped
        between 0 and 0.5
        Note : You should add a regularization term like a l2 loss in
               addition to this one.
        Note : In theano, the `kernel_size` must be a factor of the output
               size. So 3 could not be the `kernel_size` for an output of 32.
        # Arguments
            k1: Parameter of the SSIM (default 0.01)
            k2: Parameter of the SSIM (default 0.03)
            kernel_size: Size of the sliding window (default 3)
            max_value: Max value of the output (default 1.0)
        """
 </s> add     SOFTWARE.
    """
    def __init__(self, k_1=0.01, k_2=0.03, kernel_size=3, max_value=1.0): </s> remove     def __int_shape(x):
        return K.int_shape(x)
 </s> add     def __int_shape(input_tensor):
        """ Returns the shape of tensor or variable as a tuple of int or None entries.

        Parameters
        ----------
        input_tensor: tensor or variable
            The input to return the shape for

        Returns
        -------
        tuple
            A tuple of integers (or None entries)
        """
        return K.int_shape(input_tensor) </s> remove         kernel_1d = np.array([gaussian(x, mean, sigma) for x in range(kernel_size)])
 </s> add         kernel_1d = np.array([_gaussian(x, mean, sigma) for x in range(kernel_size)])
        self.c_1 = (self.k_1 * self.max_value) ** 2
        self.c_2 = (self.k_2 * self.max_value) ** 2
          self.kernel_size = kernel_size
          self.k1 = k1
          self.k2 = k2
          self.max_value = max_value
        self.c_1 = (self.k_1 * self.max_value) ** 2
        self.c_2 = (self.k_2 * self.max_value) ** 2
        self.c_1 = (self.k_1 * self.max_value) ** 2
        self.c_2 = (self.k_2 * self.max_value) ** 2
          self.dim_ordering = K.image_data_format()
          self.backend = K.backend()
  
      @staticmethod
      def __int_shape(x):
keep keep keep keep replace 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/losses.py