code: def __nvml_get_or_else(self, getter, default=None):
      try:
          nvmlInit()
          return getter()
      except NVMLError as e:
          if not GPUMonitor.nvml_error_printed:
              warning = (
                  "Info (NVML): %s. GPU usage metrics may not be reported. For more information, "
                  "see https://docs.neptune.ai/help/nvml_error/"
              )
              _logger.warning(warning, e)
              GPUMonitor.nvml_error_printed = True
          return default
  
file_path: neptune-client/src/neptune/internal/hardware/gpu/gpu_monitor.py
imports: import logging
  from neptune.vendor.pynvml import NVMLError, nvmlDeviceGetCount, nvmlDeviceGetHandleByIndex, nvmlDeviceGetMemoryInfo, nvmlDeviceGetUtilizationRates, nvmlInit
label_desc: Use image node_id 5 for calling the GPUMonitor obj's underlying member method code with example usage: obj.__nvml_get_or_else(getter, default) and returns: getter, default