class_docstr: Base for provider of data for one scene from LLFF or blender datasets.
  
  Members:
      base_dir: directory holding the data for the scene.
      object_name: The name of the scene (e.g. "lego"). This is just used as a label.
          It will typically be equal to the name of the directory self.base_dir.
      path_manager_factory: Creates path manager which may be used for
          interpreting paths.
      n_known_frames_for_test: If set, training frames are included in the val
          and test datasets, and this many random training frames are added to
          each test batch. If not set, test batches each contain just a single
          testing frame.
class_docstr_tok: ["Base","for","provider","of","data","for","one","scene","from","LLFF","or","blender","datasets",".","Members",":","base_dir",":","directory","holding","the","data","for","the","scene",".","object_name",":","The","name","of","the","scene","(","e.g",".","``","lego","''",")",".","This","is","just","used","as","a","label",".","It","will","typically","be","equal","to","the","name","of","the","directory","self.base_dir",".","path_manager_factory",":","Creates","path","manager","which","may","be","used","for","interpreting","paths",".","n_known_frames_for_test",":","If","set",",","training","frames","are","included","in","the","val","and","test","datasets",",","and","this","many","random","training","frames","are","added","to","each","test","batch",".","If","not","set",",","test","batches","each","contain","just","a","single","testing","frame","."]
code: def _get_dataset(
      self,
      split_idx: int,
      frame_type: str,
      set_eval_batches: bool = False,
  ) -> SingleSceneDataset:
      # pyre-ignore[16]
      split = self.i_split[split_idx]
      frame_types = [frame_type] * len(split)
      fg_probabilities = (
          None
          # pyre-ignore[16]
          if self.fg_probabilities is None
          else self.fg_probabilities[split]
      )
      eval_batches = [[i] for i in range(len(split))]
      if split_idx != 0 and self.n_known_frames_for_test is not None:
          train_split = self.i_split[0]
          if set_eval_batches:
              generator = np.random.default_rng(seed=0)
              for batch in eval_batches:
                  # using permutation so that changes to n_known_frames_for_test
                  # result in consistent batches.
                  to_add = generator.permutation(len(train_split))[
                      : self.n_known_frames_for_test
                  ]
                  batch.extend((to_add + len(split)).tolist())
          split = np.concatenate([split, train_split])
          frame_types.extend([DATASET_TYPE_KNOWN] * len(train_split))
  
      # pyre-ignore[28]
      return SingleSceneDataset(
          object_name=self.object_name,
          # pyre-ignore[16]
          images=self.images[split],
          fg_probabilities=fg_probabilities,
          # pyre-ignore[16]
          poses=[self.poses[i] for i in split],
          frame_types=frame_types,
          eval_batches=eval_batches if set_eval_batches else None,
      )
  
imports: from dataclasses import field
  from typing import Iterable, Iterator, List, Optional, Sequence, Tuple
  import numpy
  import torch
  from pytorch3d.implicitron.tools.config import Configurable, expand_args_fields, run_auto_creation
  from pytorch3d.renderer import CamerasBase, join_cameras_as_batch, PerspectiveCameras
  from .dataset_base import DatasetBase
  from .dataset_map_provider import DatasetMap, DatasetMapProviderBase, PathManagerFactory
  from .frame_data import FrameData
  from .utils import DATASET_TYPE_KNOWN, DATASET_TYPE_UNKNOWN
label_desc: Use image node_id 3 for calling the SingleSceneDatasetMapProviderBase obj's underlying member method code with example usage: obj._get_dataset(split_idx, frame_type, set_eval_batches) and returns: SingleSceneDataset