class_docstr: SI-SNR (or named SI-SDR) loss
  
  A more stable SI-SNR loss with clamp from `fast_bss_eval`.
  
  Attributes:
      clamp_db: float
          clamp the output value in  [-clamp_db, clamp_db]
      zero_mean: bool
          When set to True, the mean of all signals is subtracted prior.
      eps: float
          Deprecated. Kept for compatibility.
class_docstr_tok: ["SI-SNR","(","or","named","SI-SDR",")","loss","A","more","stable","SI-SNR","loss","with","clamp","from","`","fast_bss_eval","`",".","Attributes",":","clamp_db",":","float","clamp","the","output","value","in","[","-clamp_db",",","clamp_db","]","zero_mean",":","bool","When","set","to","True",",","the","mean","of","all","signals","is","subtracted","prior",".","eps",":","float","Deprecated",".","Kept","for","compatibility","."]
docstr: SI-SNR forward.
  
  Args:
  
      ref: Tensor, (..., n_samples)
          reference signal
      est: Tensor (..., n_samples)
          estimated signal
  
  Returns:
      loss: (...,)
          the SI-SDR loss (negative si-sdr)
docstr_tok: ["SI-SNR","forward",".","Args",":","ref",":","Tensor",",","(","...",",","n_samples",")","reference","signal","est",":","Tensor","(","...",",","n_samples",")","estimated","signal","Returns",":","loss",":","(","...",",",")","the","SI-SDR","loss","(","negative","si-sdr",")"]
code: def forward(
      self, ref: torch.Tensor, est: torch.Tensor
  ) -> torch.Tensor:
      """SI-SNR forward.
  
      Args:
  
          ref: Tensor, (..., n_samples)
              reference signal
          est: Tensor (..., n_samples)
              estimated signal
  
      Returns:
          loss: (...,)
              the SI-SDR loss (negative si-sdr)
      """
      assert torch.is_tensor(est) and torch.is_tensor(ref), est
  
      si_snr = fast_bss_eval.si_sdr_loss(
          est=est,
          ref=ref,
          zero_mean=self.zero_mean,
          clamp_db=self.clamp_db,
          pairwise=False,
      )
  
      return si_snr
  
imports: import logging
  import math
  from abc import ABC
  import ci_sdr
  import fast_bss_eval
  import torch
  from packaging.version import parse
  from torch_complex.tensor import ComplexTensor
  from espnet2.enh.loss.criterions.abs_loss import AbsEnhLoss
  from espnet2.layers.stft import Stft
label_desc: Use image node_id 2 for calling the SISNRLoss obj's underlying member method code with example usage: obj.forward(ref, est) and returns: si_snr