class_docstr: Implementation of https://arxiv.org/abs/1708.01682
  Args:
      alpha: The angle (as described in the paper), specified in degrees.
code: def __init__(self, alpha=40, **kwargs):
      super().__init__(**kwargs)
      c_f.assert_distance_type(
          self, LpDistance, p=2, power=1, normalize_embeddings=True
      )
      self.alpha = torch.tensor(np.radians(alpha))
      self.add_to_recordable_attributes(
          list_of_names=["alpha"], is_stat=False
      )
      self.add_to_recordable_attributes(
          list_of_names=["average_angle"], is_stat=True
      )
  
file_path: pytorch-metric-learning/src/pytorch_metric_learning/losses/angular_loss.py
imports: import numpy
  import torch
  from ..distances import LpDistance
  from ..utils import common_functions
  from ..utils import loss_and_miner_utils
  from .base_metric_loss_function import BaseMetricLossFunction
label_desc: Use image node_id 1 to create a new AngularLoss object from inherited base classes: BaseMetricLossFunction with example: obj = AngularLoss(alpha)