code: def __init__(self, loss_config: AttrDict):
      super().__init__()
      self.loss_config = loss_config
      self.swapped_assignment = self.loss_config.swapped_assignment
      self.student_temperature = self.loss_config.student_temperature
      self.student_num_crops = self.loss_config.student_num_crops
      self.teacher_num_crops = self.loss_config.teacher_num_crops
  
      # Teacher prototype probabilities that will be used to compute the
      # assignments for the student model crops prototype scores
      self.teacher_probs: Optional[torch.Tensor] = None
  
file_path: vissl/vissl/losses/msn_distillation_loss.py
imports: import pprint
  from typing import List, Optional
  import torch
  import torch.nn.functional
  from classy_vision.losses import ClassyLoss, register_loss
  from vissl.config import AttrDict
label_desc: Use image node_id 1 to create a new MSNDistillationLoss object from inherited base classes: ClassyLoss with example: obj = MSNDistillationLoss(loss_config)