docstr: This function takes valid (No ignore values present) one-hot target vectors
  and computes smoothed target vectors (normalized) according to the loss's
  smoothing parameter
code: def smooth_targets(self, valid_targets, classes):
      """
      This function takes valid (No ignore values present) one-hot target vectors
      and computes smoothed target vectors (normalized) according to the loss's
      smoothing parameter
      """
  
      valid_targets /= self._eps + valid_targets.sum(
          dim=1, keepdim=True
      )
      if classes > 0:
          smoothed_targets = valid_targets + (
              self._smoothing_param / classes
          )
      smoothed_targets /= self._eps + smoothed_targets.sum(
          dim=1, keepdim=True
      )
  
      return smoothed_targets
  
file_path: ClassyVision/classy_vision/losses/label_smoothing_loss.py
imports: from typing import Any, Dict
  import numpy
  from classy_vision.generic.util import convert_to_one_hot
  from classy_vision.losses import ClassyLoss, register_loss
  from classy_vision.losses.soft_target_cross_entropy_loss import SoftTargetCrossEntropyLoss
label_desc: Use image node_id 4 for calling the LabelSmoothingCrossEntropyLoss obj's underlying member method code with example usage: obj.smooth_targets(valid_targets, classes) and returns: smoothed_targets