class_docstr: [`LogitsWarper`] for temperature (exponential scaling output probability distribution).
  This version allows for a separate value for each sample and runs inplace when possible.
  It doesn't validate inputs.
  
  Args:
      temperature (`float`):
          The value used to module the logits distribution.
code: def __init__(
      self,
      temperature: List[float],
      dtype: torch.dtype,
      device: torch.device,
  ):
      self.temperature = temperature
      self.temperature_tensor = torch.tensor(
          temperature, dtype=dtype, device=device
      ).unsqueeze(1)
  
imports: import math
  import torch
  from functools import lru_cache
  from typing import Optional, List, Dict, Union
  from transformers import LogitsWarper, LogitsProcessor, TemperatureLogitsWarper, TopKLogitsWarper, TopPLogitsWarper, TypicalLogitsWarper
label_desc: Use image node_id 1 to create a new HeterogeneousTemperatureLogitsWarper object  with example: obj = HeterogeneousTemperatureLogitsWarper(temperature, dtype, device)