class_docstr: Spectral convergence loss.
      
docstr: Calculate forward propagation.
  
  Args:
      x_mag: Magnitude spectrogram of predicted signal (B, #frames, #freq_bins).
      y_mag: Magnitude spectrogram of groundtruth signal (B, #frames, #freq_bins).
  Returns:
      torch.Tensor: Spectral convergence loss value.
docstr_tok: ["Calculate","forward","propagation",".","Args",":","x_mag",":","Magnitude","spectrogram","of","predicted","signal","(","B",",","#","frames",",","#","freq_bins",")",".","y_mag",":","Magnitude","spectrogram","of","groundtruth","signal","(","B",",","#","frames",",","#","freq_bins",")",".","Returns",":","torch.Tensor",":","Spectral","convergence","loss","value","."]
code: def forward(self, x_mag: torch.Tensor, y_mag: torch.Tensor):
      """Calculate forward propagation.
  
      Args:
          x_mag: Magnitude spectrogram of predicted signal (B, #frames, #freq_bins).
          y_mag: Magnitude spectrogram of groundtruth signal (B, #frames, #freq_bins).
      Returns:
          torch.Tensor: Spectral convergence loss value.
      """
      return torch.norm(y_mag - x_mag, p="fro") / (
          torch.norm(y_mag, p="fro") + self.epsilon
      )
  
imports: import typing
  import torch
  from torch import nn
  from torch.nn import functional
label_desc: Use image node_id 2 for calling the SpectralConvergenceLoss obj's underlying member method code with example usage: obj.forward(x_mag, y_mag) and returns: unknown