code: def unwrap_to_tensors(*tensors: torch.Tensor):
          
          return (x.detach().cpu() if isinstance(x, torch.Tensor) else x for x in tensors)
docs: If you actually passed gradient-tracking Tensors to a Metric, there will be
          a huge memory leak, because it will prevent garbage collection for the computation
          graph. This method ensures that you're using tensors directly and that they are on
          the CPU.