code: def test_backward(self):
      temperature = 0.1
      for loss_class in [NTXentLoss, SupConLoss]:
          loss_funcA = loss_class(temperature)
          loss_funcB = loss_class(temperature, distance=LpDistance())
          for dtype in TEST_DTYPES:
              for loss_func in [loss_funcA, loss_funcB]:
                  embedding_angles = [0, 20, 40, 60, 80]
                  embeddings = torch.tensor(
                      [angle_to_coord(a) for a in embedding_angles],
                      requires_grad=True,
                      dtype=dtype,
                  ).to(
                      TEST_DEVICE
                  )  # 2D embeddings
                  labels = torch.LongTensor([0, 0, 1, 1, 2])
                  loss = loss_func(embeddings, labels)
                  loss.backward()
  
file_path: pytorch-metric-learning/tests/losses/test_ntxent_loss.py
imports: import unittest
  import torch
  from pytorch_metric_learning.distances import LpDistance
  from pytorch_metric_learning.losses import NTXentLoss, SupConLoss
  from pytorch_metric_learning.reducers import AvgNonZeroReducer, PerAnchorReducer
  from ..None import TEST_DEVICE, TEST_DTYPES
  from ..zzz_testing_utils.testing_utils import angle_to_coord
  from .utils import get_pair_embeddings_with_ref
label_desc: Use image node_id 5 for calling the TestNTXentLoss obj's underlying member method code with example usage: obj.test_backward() without return types