class_docstr: Multi resolution STFT loss.
  
  Args:
      n_ffts (Sequence[int]): Sequence of FFT sizes.
      hop_lengths (Sequence[int]): Sequence of hop sizes.
      win_lengths (Sequence[int]): Sequence of window lengths.
      window (str): Window function type.
      factor_sc (float): Coefficient for the spectral loss.
      factor_mag (float): Coefficient for the magnitude loss.
      normalized (bool): Whether to use normalized STFT or not.
      epsilon (float): Epsilon for numerical stability.
code: def __init__(
      self,
      n_ffts: tp.Sequence[int] = [1024, 2048, 512],
      hop_lengths: tp.Sequence[int] = [120, 240, 50],
      win_lengths: tp.Sequence[int] = [600, 1200, 240],
      window: str = "hann_window",
      factor_sc: float = 0.1,
      factor_mag: float = 0.1,
      normalized: bool = False,
      epsilon: float = torch.finfo(torch.float32).eps,
  ):
      super().__init__()
      assert len(n_ffts) == len(hop_lengths) == len(win_lengths)
      self.stft_losses = torch.nn.ModuleList()
      for fs, ss, wl in zip(n_ffts, hop_lengths, win_lengths):
          self.stft_losses += [
              STFTLosses(fs, ss, wl, window, normalized, epsilon)
          ]
      self.factor_sc = factor_sc
      self.factor_mag = factor_mag
  
imports: import typing
  import torch
  from torch import nn
  from torch.nn import functional
label_desc: Use image node_id 1 to create a new MRSTFTLoss object from inherited base classes: nn with example: obj = MRSTFTLoss(n_ffts, hop_lengths, win_lengths, window, factor_sc, factor_mag, normalized, epsilon)