class_docstr: Base DataLoader implementation for detection models
  
  Args:
      sample_transforms (list): a list of transforms to perform
                                on each sample
      batch_transforms (list): a list of transforms to perform
                               on batch
      batch_size (int): batch size for batch collating, default 1.
      shuffle (bool): whether to shuffle samples
      drop_last (bool): whether to drop the last incomplete,
                        default False
      num_classes (int): class number of dataset, default 80
      collate_batch (bool): whether to collate batch in dataloader.
          If set to True, the samples will collate into batch according
          to the batch size. Otherwise, the ground-truth will not collate,
          which is used when the number of ground-truch is different in 
          samples.
      use_shared_memory (bool): whether to use shared memory to
              accelerate data loading, enable this only if you
              are sure that the shared memory size of your OS
              is larger than memory cost of input datas of model.
              Note that shared memory will be automatically
              disabled if the shared memory of OS is less than
              1G, which is not enough for detection models.
              Default False.
class_docstr_tok: ["Base","DataLoader","implementation","for","detection","models","Args",":","sample_transforms","(","list",")",":","a","list","of","transforms","to","perform","on","each","sample","batch_transforms","(","list",")",":","a","list","of","transforms","to","perform","on","batch","batch_size","(","int",")",":","batch","size","for","batch","collating",",","default","1.","shuffle","(","bool",")",":","whether","to","shuffle","samples","drop_last","(","bool",")",":","whether","to","drop","the","last","incomplete",",","default","False","num_classes","(","int",")",":","class","number","of","dataset",",","default","80","collate_batch","(","bool",")",":","whether","to","collate","batch","in","dataloader",".","If","set","to","True",",","the","samples","will","collate","into","batch","according","to","the","batch","size",".","Otherwise",",","the","ground-truth","will","not","collate",",","which","is","used","when","the","number","of","ground-truch","is","different","in","samples",".","use_shared_memory","(","bool",")",":","whether","to","use","shared","memory","to","accelerate","data","loading",",","enable","this","only","if","you","are","sure","that","the","shared","memory","size","of","your","OS","is","larger","than","memory","cost","of","input","datas","of","model",".","Note","that","shared","memory","will","be","automatically","disabled","if","the","shared","memory","of","OS","is","less","than","1G",",","which","is","not","enough","for","detection","models",".","Default","False","."]
code: def __len__(self):
      return len(self._batch_sampler)
  
imports: import copy
  import os
  import traceback
  import six
  import sys
  import numpy
  import paddle
  import paddle.nn.functional
  from copy import deepcopy
  from paddle.io import DataLoader, DistributedBatchSampler
  from .utils import default_collate_fn
  from ppdet.core.workspace import register
  from .None import transform
  from .shm_utils import _get_shared_memory_size_in_M
  from ppdet.utils.logger import setup_logger
label_desc: Use image node_id 3 for calling the BaseDataLoader obj's underlying member method code with example usage: obj.__len__() and returns: len