code: def __init__(self, la, gamma, tau, margin, dim, cN, K):
      super(OriginalImplementationSoftTriple, self).__init__()
      self.la = la
      self.gamma = 1.0 / gamma
      self.tau = tau
      self.margin = margin
      self.cN = cN
      self.K = K
      self.fc = Parameter(torch.Tensor(dim, cN * K))
      self.weight = torch.zeros(cN * K, cN * K, dtype=torch.bool)
      for i in range(0, cN):
          for j in range(0, K):
              self.weight[i * K + j, i * K + j + 1 : (i + 1) * K] = 1
      init.kaiming_uniform_(self.fc, a=math.sqrt(5))
      return
  
file_path: pytorch-metric-learning/tests/losses/test_soft_triple_loss.py
imports: import math
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.nn import init
  from torch.nn.parameter import Parameter
  from pytorch_metric_learning.utils import common_functions
  from ..zzz_testing_utils.testing_utils import angle_to_coord
  import unittest
  from pytorch_metric_learning.losses import SoftTripleLoss
  from pytorch_metric_learning.regularizers import SparseCentersRegularizer
  from ..None import TEST_DEVICE, TEST_DTYPES
label_desc: Use image node_id 1 to create a new OriginalImplementationSoftTriple object from inherited base classes: nn with example: obj = OriginalImplementationSoftTriple(la, gamma, tau, margin, dim, cN, K)