class_docstr: Module for calculating RKD Distance Loss
  
  :param dist_ratio (float): Distance ratio for RKD loss if used
  :param angle_ratio (float): Angle ratio for RKD loss if used
  :param normalize (boolean): Normalize the input before calculating loss.
class_docstr_tok: ["Module","for","calculating","RKD","Distance","Loss",":","param","dist_ratio","(","float",")",":","Distance","ratio","for","RKD","loss","if","used",":","param","angle_ratio","(","float",")",":","Angle","ratio","for","RKD","loss","if","used",":","param","normalize","(","boolean",")",":","Normalize","the","input","before","calculating","loss","."]
docstr: Forward function
  
  :param teacher (torch.FloatTensor): Prediction made by the teacher model
  :param student (torch.FloatTensor): Prediction made by the student model
  :param normalize (bool): True if inputs need to be normalized
docstr_tok: ["Forward","function",":","param","teacher","(","torch.FloatTensor",")",":","Prediction","made","by","the","teacher","model",":","param","student","(","torch.FloatTensor",")",":","Prediction","made","by","the","student","model",":","param","normalize","(","bool",")",":","True","if","inputs","need","to","be","normalized"]
code: def forward(self, teacher, student):
      """
      Forward function
  
      :param teacher (torch.FloatTensor): Prediction made by the teacher model
      :param student (torch.FloatTensor): Prediction made by the student model
      :param normalize (bool): True if inputs need to be normalized
      """
  
      loss = (
          angle_loss(teacher, student, self.normalize)
          * self.angle_ratio
      )
      loss += distance_loss(teacher, student) * self.dist_ratio
      return loss
  
file_path: KD_Lib/KD_Lib/KD/vision/RKD/loss_metric.py
imports: import torch
  import torch.nn.functional
  from torch import nn
label_desc: Use image node_id 2 for calling the RKDLoss obj's underlying member method code with example usage: obj.forward(teacher, student) and returns: loss