docstr: Mixture Invariant Training Solver.
  
  Args:
      criterion (AbsEnhLoss): an instance of AbsEnhLoss
      weight (float): weight (between 0 and 1) of current loss
          for multi-task learning.
docstr_tok: ["Mixture","Invariant","Training","Solver",".","Args",":","criterion","(","AbsEnhLoss",")",":","an","instance","of","AbsEnhLoss","weight","(","float",")",":","weight","(","between","0","and","1",")","of","current","loss","for","multi-task","learning","."]
code: def __init__(
      self,
      criterion: AbsEnhLoss,
      weight: float = 1.0,
  ):
      """Mixture Invariant Training Solver.
  
      Args:
          criterion (AbsEnhLoss): an instance of AbsEnhLoss
          weight (float): weight (between 0 and 1) of current loss
              for multi-task learning.
      """
      super().__init__()
      self.criterion = criterion
      self.weight = weight
  
file_path: espnet/espnet2/enh/loss/wrappers/mixit_solver.py
imports: import itertools
  from typing import Dict, List, Union
  import torch
  from torch_complex.tensor import ComplexTensor
  from espnet2.enh.layers.complex_utils import einsum
  from espnet2.enh.layers.complex_utils import stack
  from espnet2.enh.loss.criterions.abs_loss import AbsEnhLoss
  from espnet2.enh.loss.wrappers.abs_wrapper import AbsLossWrapper
label_desc: Use image node_id 1 to create a new MixITSolver object from inherited base classes: AbsLossWrapper with example: obj = MixITSolver(criterion, weight)