code: def _dataloader(
      self,
      dataset,
      pre_batch_collate_transform,
      conv_type,
      precompute_multi_scale,
      **kwargs,
  ):
      batch_collate_function = self.__class__._get_collate_function(
          conv_type, precompute_multi_scale, pre_batch_collate_transform
      )
      num_workers = kwargs.get("num_workers", 0)
      persistent_workers = num_workers > 0
      dataloader = partial(
          torch.utils.data.DataLoader,
          collate_fn=batch_collate_function,
          worker_init_fn=np.random.seed,
          persistent_workers=persistent_workers,
      )
      return dataloader(dataset, **kwargs)
  
imports: import os
  from abc import ABC, abstractmethod
  import logging
  import functools
  from functools import partial
  import numpy
  import torch
  import torch_geometric
  from torch_geometric.transforms import Compose, FixedPoints
  import copy
  from torch_points3d.models import model_interface
  from torch_points3d.core.data_transform import instantiate_transforms, MultiScaleTransform
  from torch_points3d.core.data_transform import instantiate_filters
  from torch_points3d.datasets.batch import SimpleBatch
  from torch_points3d.datasets.multiscale_data import MultiScaleBatch
  from torch_points3d.utils.enums import ConvolutionFormat
  from torch_points3d.utils.config import ConvolutionFormatFactory
  from torch_points3d.utils.colors import COLORS, colored_print
label_desc: Use image node_id 10 for calling the BaseDataset obj's underlying member method code with example usage: obj._dataloader(dataset, pre_batch_collate_transform, conv_type, precompute_multi_scale) and returns: dataloader