From cb10a77caef5ffe9fd5ccab0b0898f38da1c6651 Mon Sep 17 00:00:00 2001 From: terrance Date: Wed, 24 May 2023 18:03:46 +0000 Subject: [PATCH] move no input data flag from pipeline to datamanager --- nerfstudio/configs/method_configs.py | 1 - nerfstudio/data/datamanagers/base_datamanager.py | 1 + nerfstudio/data/datamanagers/dreamfusion_datamanager.py | 1 + nerfstudio/engine/trainer.py | 2 +- nerfstudio/pipelines/base_pipeline.py | 4 ---- 5 files changed, 3 insertions(+), 6 deletions(-) diff --git a/nerfstudio/configs/method_configs.py b/nerfstudio/configs/method_configs.py index 21f564a0c..a169fafef 100644 --- a/nerfstudio/configs/method_configs.py +++ b/nerfstudio/configs/method_configs.py @@ -455,7 +455,6 @@ method_configs["dreamfusion"] = TrainerConfig( max_num_iterations=30000, mixed_precision=True, pipeline=VanillaPipelineConfig( - no_input_data=True, datamanager=DreamFusionDataManagerConfig( horizontal_rotation_warmup=2000, ), diff --git a/nerfstudio/data/datamanagers/base_datamanager.py b/nerfstudio/data/datamanagers/base_datamanager.py index beb41cf39..2c3765c5a 100644 --- a/nerfstudio/data/datamanagers/base_datamanager.py +++ b/nerfstudio/data/datamanagers/base_datamanager.py @@ -409,6 +409,7 @@ class VanillaDataManager(DataManager, Generic[TDataset]): # pylint: disable=abs self.test_mode = test_mode self.test_split = "test" if test_mode in ["test", "inference"] else "val" self.dataparser_config = self.config.dataparser + self.input_data = True if self.config.data is not None: self.config.dataparser.data = Path(self.config.data) else: diff --git a/nerfstudio/data/datamanagers/dreamfusion_datamanager.py b/nerfstudio/data/datamanagers/dreamfusion_datamanager.py index 6ce1ed2ff..868a000ba 100644 --- a/nerfstudio/data/datamanagers/dreamfusion_datamanager.py +++ b/nerfstudio/data/datamanagers/dreamfusion_datamanager.py @@ -212,6 +212,7 @@ class DreamFusionDataManager(DataManager): # pylint: disable=abstract-method self.sampler = None self.test_mode = test_mode self.test_split = "test" if test_mode in ["test", "inference"] else "val" + self.input_data = False if self.config.data is not None: CONSOLE.print("[red] --data should not be used with the DreamFusionDataManager[/red]") diff --git a/nerfstudio/engine/trainer.py b/nerfstudio/engine/trainer.py index 64f6d61be..efc9e170c 100644 --- a/nerfstudio/engine/trainer.py +++ b/nerfstudio/engine/trainer.py @@ -223,7 +223,7 @@ class Trainer: """Train the model.""" assert self.pipeline.datamanager.train_dataset is not None, "Missing DatsetInputs" - if not self.pipeline.no_input_data: + if self.pipeline.datamanager.input_data: self.pipeline.datamanager.train_dataparser_outputs.save_dataparser_transform( self.base_dir / "dataparser_transforms.json" ) diff --git a/nerfstudio/pipelines/base_pipeline.py b/nerfstudio/pipelines/base_pipeline.py index 37546ede6..40f707822 100644 --- a/nerfstudio/pipelines/base_pipeline.py +++ b/nerfstudio/pipelines/base_pipeline.py @@ -95,7 +95,6 @@ class Pipeline(nn.Module): datamanager: DataManager _model: Model - generative: bool world_size: int @property @@ -211,8 +210,6 @@ class VanillaPipelineConfig(cfg.InstantiateConfig): """specifies the datamanager config""" model: ModelConfig = ModelConfig() """specifies the model config""" - no_input_data: bool = False - """specifies whether the pipeline is expects an input dataset""" class VanillaPipeline(Pipeline): @@ -248,7 +245,6 @@ class VanillaPipeline(Pipeline): self.datamanager: VanillaDataManager = config.datamanager.setup( device=device, test_mode=test_mode, world_size=world_size, local_rank=local_rank ) - self.no_input_data = config.no_input_data self.datamanager.to(device) # TODO(ethan): get rid of scene_bounds from the model assert self.datamanager.train_dataset is not None, "Missing input dataset"