From fbcf3cb83169108a081ca439627aea90052fa149 Mon Sep 17 00:00:00 2001 From: evonneng Date: Mon, 30 May 2022 10:47:49 -0700 Subject: [PATCH] Eng/better configs (#113) * update possible config setup * finished porting remaning configs * fix bugs * change mattprot to radiance in config --- configs/{default.yaml => default_setup.yaml} | 5 +-- configs/graph/default_graph.yaml | 32 ---------------- configs/graph/instant_ngp_graph.yaml | 15 -------- configs/graph/nerfw_graph.yaml | 11 ------ configs/graph/semantic_nerf_graph.yaml | 10 ----- configs/instant_ngp.yaml | 19 ++++++++-- configs/instant_ngp_tcnn.yaml | 4 +- configs/nerfw.yaml | 21 ++++++---- configs/semantic_nerf.yaml | 20 ++++++---- configs/tests/test_dryrun.yaml | 2 +- configs/vanilla_nerf.yaml | 40 ++++++++++++++++++++ scripts/benchmarking/run_benchmark.py | 2 +- scripts/run_train.py | 2 +- 13 files changed, 89 insertions(+), 94 deletions(-) rename configs/{default.yaml => default_setup.yaml} (86%) delete mode 100644 configs/graph/default_graph.yaml delete mode 100644 configs/graph/instant_ngp_graph.yaml delete mode 100644 configs/graph/nerfw_graph.yaml delete mode 100644 configs/graph/semantic_nerf_graph.yaml create mode 100644 configs/vanilla_nerf.yaml diff --git a/configs/default.yaml b/configs/default_setup.yaml similarity index 86% rename from configs/default.yaml rename to configs/default_setup.yaml index 96f06284d..7fc61d012 100644 --- a/configs/default.yaml +++ b/configs/default_setup.yaml @@ -1,7 +1,6 @@ defaults: # This makes the logging module logs colorful - data: default_data.yaml - - graph: default_graph.yaml - logging: default_logging.yaml - override hydra/job_logging: colorlog - override hydra/hydra_logging: colorlog @@ -15,12 +14,10 @@ hydra: # Example "outputs/mnist/classifier/baseline/2021-03-10-141516" dir: outputs/${experiment_name}/${method_name}/${now:%Y-%m-%d_%H%M%S} -experiment_name: blender_lego -method_name: vanilla_nerf - # machine options machine_config: num_gpus: 1 num_machines: 1 machine_rank: 0 dist_url: auto + diff --git a/configs/graph/default_graph.yaml b/configs/graph/default_graph.yaml deleted file mode 100644 index 1259f0b58..000000000 --- a/configs/graph/default_graph.yaml +++ /dev/null @@ -1,32 +0,0 @@ -# saving model specifications -model_dir: /tmp/radiance_models/ -steps_per_save: null -steps_per_test: 100 -max_num_iterations: 1000000 - -# pretrained loading options -resume_train: - load_dir: # pretrained model directory - load_step: # pretrained model's step number - -network: - _target_: radiance.nerf.graph.vanilla_nerf.NeRFGraph - near_plane: 2.0 - far_plane: 6.0 - num_coarse_samples: 64 - num_importance_samples: 128 - - loss_coefficients: # loss coefficients - rgb_loss_coarse: 1.0 - rgb_loss_fine: 1.0 - -# optimizer options for network -param_groups: - fields: - optimizer: - _target_: torch.optim.RAdam - lr: 0.0005 - scheduler: - _target_: radiance.nerf.optimizers.ExponentialDecaySchedule - lr_final: 0.000005 - max_steps: 1000000 diff --git a/configs/graph/instant_ngp_graph.yaml b/configs/graph/instant_ngp_graph.yaml deleted file mode 100644 index de509f365..000000000 --- a/configs/graph/instant_ngp_graph.yaml +++ /dev/null @@ -1,15 +0,0 @@ -defaults: - - default_graph.yaml - - _self_ - -network: - _target_: radiance.nerf.graph.instant_ngp.NGPGraph - field_implementation: torch # torch, tcnn, ... - loss_coefficients: # loss coefficients - rgb_loss: 1.0 - -# optimizer options for network -param_groups: - fields: - optimizer: - lr: 1e-2 diff --git a/configs/graph/nerfw_graph.yaml b/configs/graph/nerfw_graph.yaml deleted file mode 100644 index 9893763b0..000000000 --- a/configs/graph/nerfw_graph.yaml +++ /dev/null @@ -1,11 +0,0 @@ -defaults: - - default_graph.yaml - - _self_ - -network: - _target_: radiance.nerf.graph.nerfw.NerfWGraph - loss_coefficients: # loss coefficients - rgb_loss_coarse: 1.0 - rgb_loss_fine: 1.0 - uncertainty_loss: 1.0 - density_loss: 0.01 diff --git a/configs/graph/semantic_nerf_graph.yaml b/configs/graph/semantic_nerf_graph.yaml deleted file mode 100644 index 689f4b15f..000000000 --- a/configs/graph/semantic_nerf_graph.yaml +++ /dev/null @@ -1,10 +0,0 @@ -defaults: - - default_graph.yaml - - _self_ - -network: - _target_: radiance.nerf.graph.semantic_nerf.SemanticNerfGraph - loss_coefficients: # loss coefficients - rgb_loss_coarse: 1.0 - rgb_loss_fine: 1.0 - semantic_loss_fine: 0.05 \ No newline at end of file diff --git a/configs/instant_ngp.yaml b/configs/instant_ngp.yaml index b9c0262df..01e3d5b80 100644 --- a/configs/instant_ngp.yaml +++ b/configs/instant_ngp.yaml @@ -1,7 +1,20 @@ defaults: - - default - - override graph: instant_ngp_graph + - vanilla_nerf - _self_ + method_name: instant_ngp data.dataloader.num_rays_per_batch: 4096 -data.val_num_rays_per_chunk: 16384 \ No newline at end of file +data.val_num_rays_per_chunk: 16384 + +graph: + network: + _target_: radiance.nerf.graph.instant_ngp.NGPGraph + field_implementation: torch # torch, tcnn, ... + loss_coefficients: # loss coefficients + rgb_loss: 1.0 + + # optimizer options for network + param_groups: + fields: + optimizer: + lr: 1e-2 \ No newline at end of file diff --git a/configs/instant_ngp_tcnn.yaml b/configs/instant_ngp_tcnn.yaml index c699d341d..56f501bc5 100644 --- a/configs/instant_ngp_tcnn.yaml +++ b/configs/instant_ngp_tcnn.yaml @@ -1,7 +1,7 @@ defaults: - - default - - override graph: instant_ngp_graph + - instant_ngp - _self_ + method_name: instant_ngp data: dataloader: diff --git a/configs/nerfw.yaml b/configs/nerfw.yaml index 45a3cfe64..ce296fa9d 100644 --- a/configs/nerfw.yaml +++ b/configs/nerfw.yaml @@ -1,14 +1,21 @@ defaults: - - default + - vanilla_nerf - override data/dataset: friends_TBBT-big_living_room - - override graph: nerfw_graph - _self_ experiment_name: friends_TBBT-big_living_room method_name: nerfw -network: - near_plane: 0.1 - far_plane: 10.0 - num_coarse_samples: 64 - num_importance_samples: 64 +graph: + network: + _target_: radiance.nerf.graph.nerfw.NerfWGraph + near_plane: 0.1 + far_plane: 10.0 + num_coarse_samples: 64 + num_importance_samples: 64 + + loss_coefficients: # loss coefficients + rgb_loss_coarse: 1.0 + rgb_loss_fine: 1.0 + uncertainty_loss: 1.0 + density_loss: 0.01 \ No newline at end of file diff --git a/configs/semantic_nerf.yaml b/configs/semantic_nerf.yaml index 885ae6db4..a078cced6 100644 --- a/configs/semantic_nerf.yaml +++ b/configs/semantic_nerf.yaml @@ -1,14 +1,20 @@ defaults: - - default + - vanilla_nerf - override data/dataset: friends_TBBT-big_living_room - - override graph: semantic_nerf_graph - _self_ experiment_name: friends_TBBT-big_living_room method_name: semantic_nerf -network: - near_plane: 0.1 - far_plane: 10.0 - num_coarse_samples: 64 - num_importance_samples: 64 +graph: + network: + _target_: radiance.nerf.graph.semantic_nerf.SemanticNerfGraph + near_plane: 0.1 + far_plane: 10.0 + num_coarse_samples: 64 + num_importance_samples: 64 + + loss_coefficients: # loss coefficients + rgb_loss_coarse: 1.0 + rgb_loss_fine: 1.0 + semantic_loss_fine: 0.05 \ No newline at end of file diff --git a/configs/tests/test_dryrun.yaml b/configs/tests/test_dryrun.yaml index 8d5f53271..d627fbbd9 100644 --- a/configs/tests/test_dryrun.yaml +++ b/configs/tests/test_dryrun.yaml @@ -1,5 +1,5 @@ defaults: - - default + - vanilla_nerf dry_run: true diff --git a/configs/vanilla_nerf.yaml b/configs/vanilla_nerf.yaml new file mode 100644 index 000000000..56d63176e --- /dev/null +++ b/configs/vanilla_nerf.yaml @@ -0,0 +1,40 @@ +defaults: + - default_setup + - _self_ + +experiment_name: blender_lego +method_name: vanilla_nerf + +graph: + # saving model specifications + model_dir: /tmp/radiance_models/ + steps_per_save: null + steps_per_test: 100 + max_num_iterations: 1000000 + + # pretrained loading options + resume_train: + load_dir: # pretrained model directory + load_step: # pretrained model's step number + + network: + _target_: radiance.nerf.graph.vanilla_nerf.NeRFGraph + near_plane: 2.0 + far_plane: 6.0 + num_coarse_samples: 64 + num_importance_samples: 128 + + loss_coefficients: # loss coefficients + rgb_loss_coarse: 1.0 + rgb_loss_fine: 1.0 + + # optimizer options for network + param_groups: + fields: + optimizer: + _target_: torch.optim.RAdam + lr: 0.0005 + scheduler: + _target_: radiance.nerf.optimizers.ExponentialDecaySchedule + lr_final: 0.000005 + max_steps: 1000000 diff --git a/scripts/benchmarking/run_benchmark.py b/scripts/benchmarking/run_benchmark.py index ca3dcda0f..08912ea17 100644 --- a/scripts/benchmarking/run_benchmark.py +++ b/scripts/benchmarking/run_benchmark.py @@ -17,7 +17,7 @@ from radiance.nerf.trainer import Trainer BENCH = { "method": "vanilla_nerf", "hydra_base_dir": "outputs/", - "benchmark_date": "05-24-2022", + "benchmark_date": "05-26-2022", "object_list": ["mic", "ficus", "chair", "hotdog", "materials", "drums", "ship", "lego"], } diff --git a/scripts/run_train.py b/scripts/run_train.py index 68e984814..3ad5c0254 100644 --- a/scripts/run_train.py +++ b/scripts/run_train.py @@ -198,7 +198,7 @@ def launch( profiler.flush_profiler(config.logging) -@hydra.main(config_path="../configs", config_name="default.yaml") +@hydra.main(config_path="../configs", config_name="vanilla_nerf.yaml") def main(config: DictConfig): """Main function.""" launch(