code: def init_scale_zp(
      tracked_max: Tensor,
      tracked_min: Tensor,
      qmax: int,
      qmin: int,
      quant_scheme: Union[str, None] = None,
  ):
      tracked_min = torch.min(
          tracked_min, torch.zeros_like(tracked_min)
      )
      tracked_max = torch.max(
          tracked_max, torch.zeros_like(tracked_max)
      )
      zero_point = torch.zeros_like(tracked_min)
      if quant_scheme == "affine":
          scale = (tracked_max - tracked_min) / float(qmax - qmin)
          scale = torch.max(
              scale,
              torch.full_like(scale, torch.finfo(torch.float32).eps),
          )
          zero_point = qmin - torch.round(tracked_min / scale)
      elif quant_scheme in ["symmetric", None]:
          raise ValueError(f"Unsupported quant_scheme {quant_scheme}")
      else:
          raise RuntimeError(f"Unknown quant_scheme {quant_scheme}")
  
      zero_point = torch.clamp(zero_point, qmin, qmax)
      return scale, zero_point
  
imports: from __future__ import annotations
  import logging
  from typing import List, Dict, Union, overload
  import torch
  import torch.nn
  from torch import Tensor
  from nni.common.version import torch_version_is_2
  from ..base.compressor import Compressor, Quantizer
  from ..base.wrapper import ModuleWrapper
  from ..utils import Evaluator, _EVALUATOR_DOCSTRING
  from ..base.target_space import TargetType, QuantizationTargetSpace
label_desc: Use image node_id 1 for calling a global function with example usage: init_scale_zp(tracked_max, tracked_min, qmax, qmin, quant_scheme) and returns: scale,  zero_point