code: def __init__(self, opt, model_type=None, dataset=None, modules=None):
      super().__init__(opt)
  
      self._opt = OmegaConf.to_container(opt)
      self._is_dense = ConvolutionFormatFactory.check_is_dense_format(
          self.conv_type
      )
  
      self._build_model()
  
      self.loss_names = ["loss_seg", "loss_internal"]
  
      self.visual_names = ["data_visual"]
  
imports: import torch.nn.functional
  import logging
  from omegaconf import OmegaConf
  from torch_points3d.core.base_conv.base_conv import *
  from torch_points3d.core.common_modules.base_modules import *
  from torch_points3d.utils.config import ConvolutionFormatFactory
  from torch_points3d.modules.PointNet import *
  from torch_points3d.models.base_model import BaseModel
  from torch_points3d.utils.model_building_utils.resolver_utils import flatten_dict
  from torch_points3d.datasets.segmentation import IGNORE_LABEL
label_desc: Use image node_id 1 to create a new PointNet object from inherited base classes: BaseModel with example: obj = PointNet(opt, model_type, dataset, modules)