code: def log_hyperparams(self, params: Union[Dict[str, Any], Namespace]):
      params = self._convert_params(params)
  
      # Handle OmegaConf object
      try:
          from omegaconf import OmegaConf
      except ModuleNotFoundError:
          pass
      else:
          # Convert to primitives
          if OmegaConf.is_config(params):
              params = OmegaConf.to_container(params, resolve=True)
  
      for key, value in params.items():
          self.experiment.set(("hparams", key), value, strict=False)
  
file_path: aim/aim/sdk/adapters/pytorch_lightning.py
imports: import os
  from typing import Any, Dict, Optional, Union
  from argparse import Namespace
  import packaging.version
  from aim.sdk.run import Run
  from aim.sdk.repo import Repo
  from aim.sdk.utils import clean_repo_path, get_aim_repo_name
  from aim.ext.resource.configs import DEFAULT_SYSTEM_TRACKING_INT
label_desc: Use image node_id 4 for calling the AimLogger obj's underlying member method code with example usage: obj.log_hyperparams(params) without return types