class_docstr: Context manager to handle out of memory errors.
  
  Args:
      handle_oom: Whether to handle the error or not. If set to False,
          the exception will be propagated.
code: def __exit__(self, exc_type, exc_value, traceback):
      is_oom_runtime_error = (
          exc_type is RuntimeError and "out of memory" in str(exc_value)
      )
      try:
          is_cuda_oom_error = exc_type is torch.cuda.OutOfMemoryError
      except AttributeError:
          # before torch 1.13.0, torch.cuda.OutOfMemoryError did not exist
          is_cuda_oom_error = False
      if (
          is_oom_runtime_error or is_cuda_oom_error
      ) and self.handle_oom:
          self.oom_triggered = True
          self.oom_msg = exc_value.args[0]
          torch.cuda.empty_cache()
          return True  # Suppress the exception
      return False
  
file_path: pytorch_tabular/src/pytorch_tabular/utils/nn_utils.py
imports: import torch
  import torch.nn
  from .logger import get_logger
label_desc: Use image node_id 3 for calling the OutOfMemoryHandler obj's underlying member method code with example usage: obj.__exit__(exc_type, exc_value, traceback) and returns: False, True