class_docstr: Implementation of the virtual teacher kowledge distillation framework from the paper
  "Revisit Knowledge Distillation: a Teacher-free Framework" https://arxiv.org/abs/1909.11723
  
  
  :param student_model (torch.nn.Module): Student model
  :param train_loader (torch.utils.data.DataLoader): Dataloader for training
  :param val_loader (torch.utils.data.DataLoader): Dataloader for validation/testing
  :param optimizer_student (torch.optim.*): Optimizer used for training student
  :param loss_fn (torch.nn.Module):  Calculates loss during distillation
  :param correct_prob (float): Probability assigned to the correct class while generating soft labels for student training
  :param temp (float): Temperature parameter for distillation
  :param distil_weight (float): Weight paramter for distillation loss
  :param device (str): Device used for training; 'cpu' for cpu and 'cuda' for gpu
  :param log (bool): True if logging required
  :param logdir (str): Directory for storing logs
class_docstr_tok: ["Implementation","of","the","virtual","teacher","kowledge","distillation","framework","from","the","paper","''","Revisit","Knowledge","Distillation",":","a","Teacher-free","Framework","''","https",":","\/\/arxiv.org\/abs\/1909.11723",":","param","student_model","(","torch.nn.Module",")",":","Student","model",":","param","train_loader","(","torch.utils.data.DataLoader",")",":","Dataloader","for","training",":","param","val_loader","(","torch.utils.data.DataLoader",")",":","Dataloader","for","validation\/testing",":","param","optimizer_student","(","torch.optim",".","*",")",":","Optimizer","used","for","training","student",":","param","loss_fn","(","torch.nn.Module",")",":","Calculates","loss","during","distillation",":","param","correct_prob","(","float",")",":","Probability","assigned","to","the","correct","class","while","generating","soft","labels","for","student","training",":","param","temp","(","float",")",":","Temperature","parameter","for","distillation",":","param","distil_weight","(","float",")",":","Weight","paramter","for","distillation","loss",":","param","device","(","str",")",":","Device","used","for","training",";","'cpu","'","for","cpu","and","'cuda","'","for","gpu",":","param","log","(","bool",")",":","True","if","logging","required",":","param","logdir","(","str",")",":","Directory","for","storing","logs"]
docstr: Get the number of parameters for the student network
docstr_tok: ["Get","the","number","of","parameters","for","the","student","network"]
code: def get_parameters(self):
      """
      Get the number of parameters for the student network
      """
  
      student_params = sum(
          p.numel() for p in self.student_model.parameters()
      )
  
      print("-" * 80)
      print(
          f"Total parameters for the student network are: {student_params}"
      )
  
file_path: KD_Lib/KD_Lib/KD/vision/teacher_free/virtual_teacher.py
imports: from copy import deepcopy
  import matplotlib.pyplot
  import torch
  import torch.nn
  import torch.nn.functional
  import torch.optim
  from torch.utils.tensorboard import SummaryWriter
label_desc: Use image node_id 5 for calling the VirtualTeacher obj's underlying member method code with example usage: obj.get_parameters() without return types