code: def _split_generators(self, dl_manager):
      
      paths = dl_manager.download_and_extract(_URLS)
      # Load labels from CSVs:
      def load(names):
        csv_positions = [0] * len(names)
        return functools.partial(_load_objects, [paths[name] for name in names],
                                 csv_positions)
      train_objects = load(['train_human_labels', 'train_machine_labels'])
      test_objects = load(['test_human_labels', 'test_machine_labels'])
      validation_objects = load(['validation_human_labels',
                                 'validation_machine_labels'])
      def load_boxes(name):
        csv_positions = [0]
        return functools.partial(_load_bboxes, paths[name], csv_positions)
      train_bbox = load_boxes('train-annotations-bbox')
      test_bbox = load_boxes('test-annotations-bbox')
      validation_bbox = load_boxes('validation-annotations-bbox')
      return [
          tfds.core.SplitGenerator(
              name=tfds.Split.TRAIN,
              num_shards=512,
              gen_kwargs=dict(archive_paths=paths['train_images'],
                              objects_getter=train_objects,
                              bboxes_getter=train_bbox,
                              prefixes='0123456789abcdef'),
          ),
          tfds.core.SplitGenerator(
              name=tfds.Split.TEST,
              num_shards=36,
              gen_kwargs=dict(archive_paths=[paths['test_images']],
                              objects_getter=test_objects,
                              bboxes_getter=test_bbox),
          ),
          tfds.core.SplitGenerator(
              name=tfds.Split.VALIDATION,
              num_shards=12,
              gen_kwargs=dict(archive_paths=[paths['validation_images']],
                              objects_getter=validation_objects,
                              bboxes_getter=validation_bbox),
          ),
      ]
docs: Returns SplitGenerators.