class_docstr: Soft KL Loss for classification tasks. Given an input sample, soft-labels (or probabilities)
  are generated from a teacher and KL loss is computed between soft-labels and student model's output.
  
  Args:
      opts: command-line arguments
class_docstr_tok: ["Soft","KL","Loss","for","classification","tasks",".","Given","an","input","sample",",","soft-labels","(","or","probabilities",")","are","generated","from","a","teacher","and","KL","loss","is","computed","between","soft-labels","and","student","model","'s","output",".","Args",":","opts",":","command-line","arguments"]
code: def add_arguments(
      cls, parser: argparse.ArgumentParser
  ) -> argparse.ArgumentParser:
      if cls != SoftKLLoss:
          # Don't re-register arguments in subclasses that don't override `add_arguments()`.
          return parser
  
      group = parser.add_argument_group(title=cls.__name__)
      group.add_argument(
          "--loss.distillation.soft-kl-loss.temperature",
          type=float,
          default=1.0,
          help=f"Temperature for KL divergence loss in {cls.__name__}. Defaults to 1.",
      )
      return parser
  
file_path: ml-cvnets/loss_fn/distillation/soft_kl_distillation.py
imports: import argparse
  import torch
  from torch import Tensor
  from torch.nn import functional
  from loss_fn import LOSS_REGISTRY
  from loss_fn.distillation.base_distillation import BaseDistillationCriteria
  from utils import logger
label_desc: Use image node_id 2 for calling the SoftKLLoss obj's underlying member method code with example usage: obj.add_arguments(cls, parser) and returns: parser, parser