From efd5d39652bd8ba565ce4abdcdd05937e44c45f0 Mon Sep 17 00:00:00 2001 From: evonneng Date: Mon, 15 Aug 2022 13:26:37 -0700 Subject: [PATCH] updating scripts; compatible with pipeline refactor (#278) --- nerfactory/dataloaders/base.py | 1 - nerfactory/utils/config.py | 8 ++++++-- scripts/benchmarking/launch_eval_blender.sh | 2 +- scripts/benchmarking/launch_train_blender.sh | 3 +-- scripts/run_eval.py | 2 ++ 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/nerfactory/dataloaders/base.py b/nerfactory/dataloaders/base.py index 51f3dcdc2..c0bd2a51e 100644 --- a/nerfactory/dataloaders/base.py +++ b/nerfactory/dataloaders/base.py @@ -222,7 +222,6 @@ class VanillaDataloader(Dataloader): # pylint: disable=abstract-method @profiler.time_function def setup_dataloader(config: DataloaderConfig, device: str, test_mode=False) -> Dataloader: """Setup the dataloader.""" - dataset_train = instantiate_from_dict_config(config.train_dataset) train_datasetinputs = dataset_train.get_dataset_inputs(split="train") if config.eval_dataset is not None: diff --git a/nerfactory/utils/config.py b/nerfactory/utils/config.py index e5f8584de..62abd2d14 100644 --- a/nerfactory/utils/config.py +++ b/nerfactory/utils/config.py @@ -71,7 +71,7 @@ class DataloaderConfig: train_num_rays_per_batch: int = MISSING train_num_images_to_sample_from: int = MISSING eval_dataset: Optional[Dict[str, Any]] = None - eval_image_indices: List[int] = MISSING + eval_image_indices: Optional[List[int]] = None eval_num_rays_per_chunk: int = MISSING @@ -141,7 +141,11 @@ def setup_config(config: DictConfig) -> Config: trainer = TrainerConfig(**config.trainer) experiment_name = config.experiment_name method_name = config.method_name - pipeline = PipelineConfig(**config.pipeline) + dataloader = DataloaderConfig(**config.pipeline.dataloader) + model = ModelConfig(**config.pipeline.model) + pipeline = PipelineConfig( + _target_=config.pipeline._target_, dataloader=dataloader, model=model # pylint:disable=protected-access + ) optimizers = config.optimizers viewer = ViewerConfig(**config.viewer) diff --git a/scripts/benchmarking/launch_eval_blender.sh b/scripts/benchmarking/launch_eval_blender.sh index f3cbcf222..53d6c836e 100755 --- a/scripts/benchmarking/launch_eval_blender.sh +++ b/scripts/benchmarking/launch_eval_blender.sh @@ -63,7 +63,7 @@ for dataset in ${DATASETS[@]}; do --checkpoint-dir ${checkpoint_dir} \ --rendered-output-name rgb \ --output-filename ${output_dir}/${base_config_name}/blender_${dataset}_${month}-${date}-${year}_${seconds}.json \ - --config-overrides data.dataset_inputs_train.data_directory=data/blender/${dataset} data.dataset_inputs_eval.data_directory=data/blender/${dataset} & + --config-overrides pipeline.dataloader.train_dataset.data_directory=data/blender/${dataset} & echo "Launched ${checkpoint_dir} on gpu ${GPU_IDX[$idx]}" # update gpu diff --git a/scripts/benchmarking/launch_train_blender.sh b/scripts/benchmarking/launch_train_blender.sh index 251eec0d7..1bbe9a50c 100755 --- a/scripts/benchmarking/launch_train_blender.sh +++ b/scripts/benchmarking/launch_train_blender.sh @@ -55,8 +55,7 @@ for dataset in ${DATASETS[@]}; do python scripts/run_train.py \ --config-name ${config_name} \ '~logging.writer.LocalWriter' \ - data.dataset_inputs_train.data_directory=data/blender/${dataset} \ - data.dataset_inputs_eval.data_directory=data/blender/${dataset} \ + pipeline.dataloader.train_dataset.data_directory=data/blender/${dataset} \ experiment_name=blender_${dataset}_${tag} \ trainer.model_dir=nerfactory_models/ \ trainer.steps_per_save=25000 \ diff --git a/scripts/run_eval.py b/scripts/run_eval.py index e150cf2ef..12e52b6cf 100644 --- a/scripts/run_eval.py +++ b/scripts/run_eval.py @@ -20,6 +20,7 @@ from nerfactory.cameras.camera_paths import ( ) from nerfactory.pipelines.base import Pipeline, setup_pipeline from nerfactory.utils import io as io_utils +from nerfactory.utils.config import setup_config from nerfactory.utils.misc import human_format from nerfactory.utils.writer import TimeWriter @@ -164,6 +165,7 @@ def main( config.trainer.resume_train.load_dir = checkpoint_dir config.pipeline.dataloader.eval_image_indices = None + config = setup_config(config) # converting to typed config device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # setup pipeline (which includes the dataloaders)