code: def _binary_hinge_loss_update(
      preds: Tensor,
      target: Tensor,
      squared: bool,
  ) -> Tuple[Tensor, Tensor]:
      target = target.bool()
      margin = torch.zeros_like(preds)
      margin[target] = preds[target]
      margin[~target] = -preds[~target]
  
      measures = 1 - margin
      measures = torch.clamp(measures, 0)
  
      if squared:
          measures = measures.pow(2)
  
      total = tensor(target.shape[0], device=target.device)
      return measures.sum(dim=0), total
  
file_path: torchmetrics/src/torchmetrics/functional/classification/hinge.py
imports: from typing import Optional, Tuple
  import torch
  from torch import Tensor, tensor
  from typing_extensions import Literal
  from torchmetrics.functional.classification.confusion_matrix import _binary_confusion_matrix_format, _binary_confusion_matrix_tensor_validation, _multiclass_confusion_matrix_format, _multiclass_confusion_matrix_tensor_validation
  from torchmetrics.utilities.data import to_onehot
  from torchmetrics.utilities.enums import ClassificationTaskNoMultilabel
label_desc: Use image node_id 4 for calling a global function with example usage: _binary_hinge_loss_update(preds, target, squared) and returns: measures,  total