class_docstr: Jensen-Shannon Divergence + Cross-Entropy Loss
  
  Based on impl here: https://github.com/google-research/augmix/blob/master/imagenet.py
  From paper: 'AugMix: A Simple Data Processing Method to Improve Robustness and Uncertainty -
  https://arxiv.org/abs/1912.02781
  
  Hacked together by / Copyright 2020 Ross Wightman
code: def __call__(self, output, target):
      split_size = output.shape[0] // self.num_splits
      assert split_size * self.num_splits == output.shape[0]
      logits_split = torch.split(output, split_size)
  
      # Cross-entropy is only computed on clean images
      loss = self.cross_entropy_loss(
          logits_split[0], target[:split_size]
      )
      probs = [F.softmax(logits, dim=1) for logits in logits_split]
  
      # Clamp mixture distribution to avoid exploding KL divergence
      logp_mixture = torch.clamp(
          torch.stack(probs).mean(axis=0), 1e-7, 1
      ).log()
      loss += (
          self.alpha
          * sum(
              [
                  F.kl_div(logp_mixture, p_split, reduction="batchmean")
                  for p_split in probs
              ]
          )
          / len(probs)
      )
      return loss
  
file_path: pytorch-image-models/timm/loss/jsd.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from .cross_entropy import LabelSmoothingCrossEntropy
label_desc: Use image node_id 2 for calling the JsdCrossEntropy obj's underlying member method code with example usage: obj.__call__(output, target) and returns: loss