class_docstr: Basic implementation of a general Knowledge Distillation framework
  
  :param teacher_model (torch.nn.Module): Teacher model
  :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_teacher (torch.optim.*): Optimizer used for training teacher
  :param optimizer_student (torch.optim.*): Optimizer used for training student
  :param loss_fn (torch.nn.Module): Loss Function used for distillation
  :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: Function that will be training the student
  
  :param epochs (int): Number of epochs you want to train the teacher
  :param plot_losses (bool): True if you want to plot the losses
  :param save_model (bool): True if you want to save the student model
  :param save_model_pth (str): Path where you want to save the student model
docstr_tok: ["Function","that","will","be","training","the","student",":","param","epochs","(","int",")",":","Number","of","epochs","you","want","to","train","the","teacher",":","param","plot_losses","(","bool",")",":","True","if","you","want","to","plot","the","losses",":","param","save_model","(","bool",")",":","True","if","you","want","to","save","the","student","model",":","param","save_model_pth","(","str",")",":","Path","where","you","want","to","save","the","student","model"]
code: def train_student(
      self,
      epochs=10,
      plot_losses=True,
      save_model=True,
      save_model_pth="./models/student.pt",
  ):
      """
      Function that will be training the student
  
      :param epochs (int): Number of epochs you want to train the teacher
      :param plot_losses (bool): True if you want to plot the losses
      :param save_model (bool): True if you want to save the student model
      :param save_model_pth (str): Path where you want to save the student model
      """
      self._train_student(
          epochs, plot_losses, save_model, save_model_pth
      )
  
file_path: KD_Lib/KD_Lib/KD/common/base_class.py
imports: import os
  from copy import deepcopy
  import matplotlib.pyplot
  import torch
  import torch.nn
  from torch.utils.tensorboard import SummaryWriter
label_desc: Use image node_id 4 for calling the BaseClass obj's underlying member method code with example usage: obj.train_student(epochs, plot_losses, save_model, save_model_pth) without return types