class_docstr: TorchPoints3d Trainer handles the logic between
      - BaseModel,
      - Dataset and its Tracker
      - A custom ModelCheckpoint
      - A custom Visualizer
  It supports MC dropout - multiple voting_runs for val / test datasets
class_docstr_tok: ["TorchPoints3d","Trainer","handles","the","logic","between","-","BaseModel",",","-","Dataset","and","its","Tracker","-","A","custom","ModelCheckpoint","-","A","custom","Visualizer","It","supports","MC","dropout","-","multiple","voting_runs","for","val","\/","test","datasets"]
code: def enable_cudnn(self):
      return getattr(self._cfg.training, "enable_cudnn", True)
  
imports: import os
  import copy
  import torch
  import hydra
  import time
  import logging
  from tqdm.auto import tqdm
  import wandb
  from torch_points3d.datasets.dataset_factory import instantiate_dataset
  from torch_points3d.models.model_factory import instantiate_model
  from torch_points3d.models.base_model import BaseModel
  from torch_points3d.datasets.base_dataset import BaseDataset
  from torch_points3d.metrics.base_tracker import BaseTracker
  from torch_points3d.metrics.colored_tqdm import Coloredtqdm
  from torch_points3d.metrics.model_checkpoint import ModelCheckpoint
  from torch_points3d.utils.colors import COLORS
  from torch_points3d.utils.wandb_utils import Wandb
  from torch_points3d.visualization import Visualizer
  import torch.profiler
  import torch.autograd.profiler
  from contextlib import nullcontext
label_desc: Use image node_id 11 for calling the Trainer obj's underlying member method code with example usage: obj.enable_cudnn() and returns: getattr