class_docstr: Issue #411:
  
  A common use case is to have embeddings and ref_emb be augmented versions of each other.
  For most losses right now you have to create labels to indicate
  which embeddings correspond with which ref_emb.
  A wrapper that does this for the user would be nice.
  
      loss_fn = SelfSupervisedLoss(TripletMarginLoss())
      loss = loss_fn(embeddings, ref_emb1, ref_emb2, ...)
  
  where ref_embk = kth augmentation of embeddings.
code: def __init__(self, loss, symmetric=True, **kwargs):
      super().__init__(loss=loss, **kwargs)
      self.loss = loss
      self.symmetric = symmetric
  
imports: import torch
  from .base_loss_wrapper import BaseLossWrapper
label_desc: Use image node_id 1 to create a new SelfSupervisedLoss object from inherited base classes: BaseLossWrapper with example: obj = SelfSupervisedLoss(loss, symmetric)