code: def fit(self, Xs, ys=None, Xt=None, yt=None):
          
  
          # check the necessary inputs parameters are here
          if check_params(Xs=Xs, Xt=Xt, ys=ys):
  
              super(SinkhornL1l2Transport, self).fit(Xs, ys, Xt, yt)
  
              returned_ = sinkhorn_l1l2_gl(
                  a=self.mu_s, labels_a=ys, b=self.mu_t, M=self.cost_,
                  reg=self.reg_e, eta=self.reg_cl, numItermax=self.max_iter,
                  numInnerItermax=self.max_inner_iter, stopInnerThr=self.tol,
                  verbose=self.verbose, log=self.log)
  
              # deal with the value of log
              if self.log:
                  self.coupling_, self.log_ = returned_
              else:
                  self.coupling_ = returned_
                  self.log_ = dict()
  
          return self
docs: Build a coupling matrix from source and target sets of samples
          (Xs, ys) and (Xt, yt)
  
          Parameters
          ----------
          Xs : array-like, shape (n_source_samples, n_features)
              The training input samples.
          ys : array-like, shape (n_source_samples,)
              The class labels
          Xt : array-like, shape (n_target_samples, n_features)
              The training input samples.
          yt : array-like, shape (n_target_samples,)
              The class labels. If some target samples are unlabeled, fill the
              yt's elements with -1.
  
              Warning: Note that, due to this convention -1 cannot be used as a
              class label
  
          Returns
          -------
          self : object
              Returns self.