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: Evaluate the given model's accuaracy over val set.
  For internal use only.
  
  :param model (nn.Module): Model to be used for evaluation
  :param verbose (bool): Display Accuracy
docstr_tok: ["Evaluate","the","given","model","'s","accuaracy","over","val","set",".","For","internal","use","only",".",":","param","model","(","nn.Module",")",":","Model","to","be","used","for","evaluation",":","param","verbose","(","bool",")",":","Display","Accuracy"]
code: def _evaluate_model(self, model, verbose=True):
      """
      Evaluate the given model's accuaracy over val set.
      For internal use only.
  
      :param model (nn.Module): Model to be used for evaluation
      :param verbose (bool): Display Accuracy
      """
      model.eval()
      length_of_dataset = len(self.val_loader.dataset)
      correct = 0
      outputs = []
  
      with torch.no_grad():
          for data, target in self.val_loader:
              data = data.to(self.device)
              target = target.to(self.device)
              output = model(data)
  
              if isinstance(output, tuple):
                  output = output[0]
              outputs.append(output)
  
              pred = output.argmax(dim=1, keepdim=True)
              correct += pred.eq(target.view_as(pred)).sum().item()
  
      accuracy = correct / length_of_dataset
  
      if verbose:
          print("-" * 80)
          print("Validation Accuracy: {}".format(accuracy))
      return outputs, accuracy
  
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 6 for calling the BaseClass obj's underlying member method code with example usage: obj._evaluate_model(model, verbose) and returns: outputs,  accuracy