class_docstr: Helper handler to log optimizer parameters
  
  Args:
      optimizer: torch optimizer or any object with attribute ``param_groups``
          as a sequence.
      param_name: parameter name
      tag: common title for all produced plots. For example, 'generator'
class_docstr_tok: ["Helper","handler","to","log","optimizer","parameters","Args",":","optimizer",":","torch","optimizer","or","any","object","with","attribute","``","param_groups","``","as","a","sequence",".","param_name",":","parameter","name","tag",":","common","title","for","all","produced","plots",".","For","example",",","'generator","'"]
code: def __call__(
      self,
      engine: Engine,
      logger: AimLogger,
      event_name: Union[str, Events],
  ) -> None:
      if not isinstance(logger, AimLogger):
          raise TypeError(
              "Handler OptimizerParamsHandler works only with AimLogger"
          )
  
      global_step = engine.state.get_event_attrib_value(event_name)
      tag_prefix = f"{self.tag}_" if self.tag else ""
      params = {
          f"{tag_prefix}{self.param_name}_group_{i}": float(
              param_group[self.param_name]
          )
          for i, param_group in enumerate(self.optimizer.param_groups)
      }
  
      logger.log_metrics(params, step=global_step)
  
imports: from typing import Any, Callable, Dict, List, Optional, Union
  from aim import Run
  from aim.ext.resource.configs import DEFAULT_SYSTEM_TRACKING_INT
label_desc: Use image node_id 2 for calling the OptimizerParamsHandler obj's underlying member method code with example usage: obj.__call__(engine, logger, event_name) without return types