code: def track_min_max_val(
      self, wrapper: ModuleWrapper, target_name: str, target: Tensor
  ):
      def amin_reduce_func(converted_target: Tensor):
          return converted_target.detach().amin(dim=-1)
  
      def amax_reduce_func(converted_target: Tensor):
          return converted_target.detach().amax(dim=-1)
  
      if target_name not in wrapper.quantization_target_spaces:
          return
  
      target_space = wrapper.quantization_target_spaces[target_name]
      # TODO sync the collection of data info when using ddp
      if target_space._scaler:
          current_amin = target_space._scaler.shrink(
              target, amin_reduce_func, keepdim=True
          )
          current_amax = target_space._scaler.shrink(
              target, amax_reduce_func, keepdim=True
          )
      else:
          current_amin = target.detach().reshape(-1).amin(-1)
          current_amax = target.detach().reshape(-1).amax(-1)
  
      # update
      target_space.tracked_max = update_tracked_value(
          target_space.tracked_max, current_amax, "max"
      )
      target_space.tracked_min = update_tracked_value(
          target_space.tracked_min, current_amin, "min"
      )
  
imports: from __future__ import annotations
  from typing import List, Dict, Union, overload
  import torch
  from torch import Tensor
  from ..base.compressor import Compressor, Quantizer
  from ..base.wrapper import ModuleWrapper
  from ..base.target_space import QuantizationTargetSpace
  from ..utils import Evaluator, _EVALUATOR_DOCSTRING
label_desc: Use image node_id 7 for calling the PtqQuantizer obj's underlying member method code with example usage: obj.track_min_max_val(wrapper, target_name, target) and returns: converted_target, converted_target