class_docstr: Temperature-scaled Contrastive loss for MoCo and other Self-Supervised learning
  approaches - https://arxiv.org/abs/1911.05722
  
  Args:
      temperature (float): scalar value to scale the loss by.
docstr: Args:
      inputs (nn.tensor):  Expected to have the same shape of `N x C`.
          Where, N is the batch size and C is the SSL model's embedding size.
docstr_tok: ["Args",":","inputs","(","nn.tensor",")",":","Expected","to","have","the","same","shape","of","`","N","x","C","`",".","Where",",","N","is","the","batch","size","and","C","is","the","SSL","model","'s","embedding","size","."]
code: def forward(self, inputs: torch.Tensor) -> torch.Tensor:
      """
      Args:
          inputs (nn.tensor):  Expected to have the same shape of `N x C`.
              Where, N is the batch size and C is the SSL model's embedding size.
      """
      inputs = torch.div(inputs, self.temperature)
      targets = torch.zeros(inputs.shape[0], dtype=torch.long).to(
          inputs.device
      )
      loss = nn.CrossEntropyLoss(reduction=self.reduction).cuda()(
          inputs, targets
      )
      return loss
  
imports: from typing import List
  import pytorchvideo_trainer.module.distributed_utils
  import torch
  import torch.nn
  import torch.nn.functional
  from pytorchvideo.layers.utils import set_attributes
label_desc: Use image node_id 2 for calling the ContrastiveLoss obj's underlying member method code with example usage: obj.forward(inputs) and returns: loss