Commit 1b0584f7 authored by Krzysztof Chalupka's avatar Krzysztof Chalupka Committed by Facebook GitHub Bot
Browse files

Replace pluggable components to create a proper Configurable hierarchy.

Summary:
This large diff rewrites a significant portion of Implicitron's config hierarchy. The new hierarchy, and some of the default implementation classes, are as follows:
```
Experiment
    data_source: ImplicitronDataSource
        dataset_map_provider
        data_loader_map_provider
    model_factory: ImplicitronModelFactory
        model: GenericModel
    optimizer_factory: ImplicitronOptimizerFactory
    training_loop: ImplicitronTrainingLoop
        evaluator: ImplicitronEvaluator
```

1) Experiment (used to be ExperimentConfig) is now a top-level Configurable and contains as members mainly (mostly new) high-level factory Configurables.
2) Experiment's job is to run factories, do some accelerate setup and then pass the results to the main training loop.
3) ImplicitronOptimizerFactory and ImplicitronModelFactory are new high-level factories that create the optimizer, scheduler, model, and stats objects.
4) TrainingLoop is a new configurable that runs the main training loop and the inner train-validate step.
5) Evaluator is a new configurable that TrainingLoop uses to run validation/test steps.
6) GenericModel is not the only model choice anymore. Instead, ImplicitronModelBase (by default instantiated with GenericModel) is a member of Experiment and can be easily replaced by a custom implementation by the user.

All the new Configurables are children of ReplaceableBase, and can be easily replaced with custom implementations.

In addition, I added support for the exponential LR schedule, updated the config files and the test, as well as added a config file that reproduces NERF results and a test to run the repro experiment.

Reviewed By: bottler

Differential Revision: D37723227

fbshipit-source-id: b36bee880d6aa53efdd2abfaae4489d8ab1e8a27
parent 6b481595
...@@ -2,10 +2,10 @@ defaults: ...@@ -2,10 +2,10 @@ defaults:
- default_config - default_config
- _self_ - _self_
exp_dir: ./data/exps/base/ exp_dir: ./data/exps/base/
architecture: generic training_loop_ImplicitronTrainingLoop_args:
visualize_interval: 0 visualize_interval: 0
visdom_port: 8097 max_epochs: 1000
data_source_args: data_source_ImplicitronDataSource_args:
data_loader_map_provider_class_type: SequenceDataLoaderMapProvider data_loader_map_provider_class_type: SequenceDataLoaderMapProvider
dataset_map_provider_class_type: JsonIndexDatasetMapProvider dataset_map_provider_class_type: JsonIndexDatasetMapProvider
data_loader_map_provider_SequenceDataLoaderMapProvider_args: data_loader_map_provider_SequenceDataLoaderMapProvider_args:
...@@ -21,55 +21,61 @@ data_source_args: ...@@ -21,55 +21,61 @@ data_source_args:
load_point_clouds: false load_point_clouds: false
mask_depths: false mask_depths: false
mask_images: false mask_images: false
generic_model_args: model_factory_ImplicitronModelFactory_args:
loss_weights: visdom_port: 8097
loss_mask_bce: 1.0 model_GenericModel_args:
loss_prev_stage_mask_bce: 1.0 loss_weights:
loss_autodecoder_norm: 0.01 loss_mask_bce: 1.0
loss_rgb_mse: 1.0 loss_prev_stage_mask_bce: 1.0
loss_prev_stage_rgb_mse: 1.0 loss_autodecoder_norm: 0.01
output_rasterized_mc: false loss_rgb_mse: 1.0
chunk_size_grid: 102400 loss_prev_stage_rgb_mse: 1.0
render_image_height: 400 output_rasterized_mc: false
render_image_width: 400 chunk_size_grid: 102400
num_passes: 2 render_image_height: 400
implicit_function_NeuralRadianceFieldImplicitFunction_args: render_image_width: 400
n_harmonic_functions_xyz: 10 num_passes: 2
n_harmonic_functions_dir: 4 implicit_function_NeuralRadianceFieldImplicitFunction_args:
n_hidden_neurons_xyz: 256 n_harmonic_functions_xyz: 10
n_hidden_neurons_dir: 128 n_harmonic_functions_dir: 4
n_layers_xyz: 8 n_hidden_neurons_xyz: 256
append_xyz: n_hidden_neurons_dir: 128
- 5 n_layers_xyz: 8
latent_dim: 0 append_xyz:
raysampler_AdaptiveRaySampler_args: - 5
n_rays_per_image_sampled_from_mask: 1024 latent_dim: 0
scene_extent: 8.0 raysampler_AdaptiveRaySampler_args:
n_pts_per_ray_training: 64 n_rays_per_image_sampled_from_mask: 1024
n_pts_per_ray_evaluation: 64 scene_extent: 8.0
stratified_point_sampling_training: true n_pts_per_ray_training: 64
stratified_point_sampling_evaluation: false n_pts_per_ray_evaluation: 64
renderer_MultiPassEmissionAbsorptionRenderer_args: stratified_point_sampling_training: true
n_pts_per_ray_fine_training: 64 stratified_point_sampling_evaluation: false
n_pts_per_ray_fine_evaluation: 64 renderer_MultiPassEmissionAbsorptionRenderer_args:
append_coarse_samples_to_fine: true n_pts_per_ray_fine_training: 64
density_noise_std_train: 1.0 n_pts_per_ray_fine_evaluation: 64
view_pooler_args: append_coarse_samples_to_fine: true
view_sampler_args: density_noise_std_train: 1.0
masked_sampling: false view_pooler_args:
image_feature_extractor_ResNetFeatureExtractor_args: view_sampler_args:
stages: masked_sampling: false
- 1 image_feature_extractor_ResNetFeatureExtractor_args:
- 2 stages:
- 3 - 1
- 4 - 2
proj_dim: 16 - 3
image_rescale: 0.32 - 4
first_max_pool: false proj_dim: 16
solver_args: image_rescale: 0.32
breed: adam first_max_pool: false
optimizer_factory_ImplicitronOptimizerFactory_args:
breed: Adam
weight_decay: 0.0
lr_policy: MultiStepLR
multistep_lr_milestones: []
lr: 0.0005 lr: 0.0005
lr_policy: multistep gamma: 0.1
max_epochs: 2000
momentum: 0.9 momentum: 0.9
weight_decay: 0.0 betas:
- 0.9
- 0.999
generic_model_args: model_factory_ImplicitronModelFactory_args:
image_feature_extractor_class_type: ResNetFeatureExtractor model_GenericModel_args:
image_feature_extractor_ResNetFeatureExtractor_args: image_feature_extractor_class_type: ResNetFeatureExtractor
add_images: true image_feature_extractor_ResNetFeatureExtractor_args:
add_masks: true add_images: true
first_max_pool: true add_masks: true
image_rescale: 0.375 first_max_pool: true
l2_norm: true image_rescale: 0.375
name: resnet34 l2_norm: true
normalize_image: true name: resnet34
pretrained: true normalize_image: true
stages: pretrained: true
- 1 stages:
- 2 - 1
- 3 - 2
- 4 - 3
proj_dim: 32 - 4
proj_dim: 32
generic_model_args: model_factory_ImplicitronModelFactory_args:
image_feature_extractor_class_type: ResNetFeatureExtractor model_GenericModel_args:
image_feature_extractor_ResNetFeatureExtractor_args: image_feature_extractor_class_type: ResNetFeatureExtractor
add_images: true image_feature_extractor_ResNetFeatureExtractor_args:
add_masks: true add_images: true
first_max_pool: false add_masks: true
image_rescale: 0.375 first_max_pool: false
l2_norm: true image_rescale: 0.375
name: resnet34 l2_norm: true
normalize_image: true name: resnet34
pretrained: true normalize_image: true
stages: pretrained: true
- 1 stages:
- 2 - 1
- 3 - 2
- 4 - 3
proj_dim: 16 - 4
proj_dim: 16
generic_model_args: model_factory_ImplicitronModelFactory_args:
image_feature_extractor_class_type: ResNetFeatureExtractor model_GenericModel_args:
image_feature_extractor_ResNetFeatureExtractor_args: image_feature_extractor_class_type: ResNetFeatureExtractor
stages: image_feature_extractor_ResNetFeatureExtractor_args:
- 1 stages:
- 2 - 1
- 3 - 2
first_max_pool: false - 3
proj_dim: -1 first_max_pool: false
l2_norm: false proj_dim: -1
image_rescale: 0.375 l2_norm: false
name: resnet34 image_rescale: 0.375
normalize_image: true name: resnet34
pretrained: true normalize_image: true
view_pooler_args: pretrained: true
feature_aggregator_AngleWeightedReductionFeatureAggregator_args: view_pooler_args:
reduction_functions: feature_aggregator_AngleWeightedReductionFeatureAggregator_args:
- AVG reduction_functions:
- AVG
defaults: defaults:
- repro_base.yaml - repro_base.yaml
- _self_ - _self_
data_source_args: data_source_ImplicitronDataSource_args:
data_loader_map_provider_SequenceDataLoaderMapProvider_args: data_loader_map_provider_SequenceDataLoaderMapProvider_args:
batch_size: 10 batch_size: 10
dataset_length_train: 1000 dataset_length_train: 1000
...@@ -26,10 +26,12 @@ data_source_args: ...@@ -26,10 +26,12 @@ data_source_args:
n_frames_per_sequence: -1 n_frames_per_sequence: -1
test_on_train: true test_on_train: true
test_restrict_sequence_id: 0 test_restrict_sequence_id: 0
solver_args: optimizer_factory_ImplicitronOptimizerFactory_args:
max_epochs: 3000 multistep_lr_milestones:
milestones:
- 1000 - 1000
camera_difficulty_bin_breaks: training_loop_ImplicitronTrainingLoop_args:
- 0.666667 max_epochs: 3000
- 0.833334 evaluator_ImplicitronEvaluator_args:
camera_difficulty_bin_breaks:
- 0.666667
- 0.833334
defaults: defaults:
- repro_multiseq_base.yaml - repro_multiseq_base.yaml
- _self_ - _self_
generic_model_args: model_factory_ImplicitronModelFactory_args:
loss_weights: model_GenericModel_args:
loss_mask_bce: 100.0 loss_weights:
loss_kl: 0.0 loss_mask_bce: 100.0
loss_rgb_mse: 1.0 loss_kl: 0.0
loss_eikonal: 0.1 loss_rgb_mse: 1.0
chunk_size_grid: 65536 loss_eikonal: 0.1
num_passes: 1 chunk_size_grid: 65536
output_rasterized_mc: true num_passes: 1
sampling_mode_training: mask_sample output_rasterized_mc: true
global_encoder_class_type: SequenceAutodecoder sampling_mode_training: mask_sample
global_encoder_SequenceAutodecoder_args: global_encoder_class_type: SequenceAutodecoder
autodecoder_args: global_encoder_SequenceAutodecoder_args:
n_instances: 20000 autodecoder_args:
init_scale: 1.0 n_instances: 20000
encoding_dim: 256 init_scale: 1.0
implicit_function_IdrFeatureField_args: encoding_dim: 256
n_harmonic_functions_xyz: 6 implicit_function_IdrFeatureField_args:
bias: 0.6 n_harmonic_functions_xyz: 6
d_in: 3 bias: 0.6
d_out: 1 d_in: 3
dims: d_out: 1
- 512
- 512
- 512
- 512
- 512
- 512
- 512
- 512
geometric_init: true
pooled_feature_dim: 0
skip_in:
- 6
weight_norm: true
renderer_SignedDistanceFunctionRenderer_args:
ray_tracer_args:
line_search_step: 0.5
line_step_iters: 3
n_secant_steps: 8
n_steps: 100
object_bounding_sphere: 8.0
sdf_threshold: 5.0e-05
ray_normal_coloring_network_args:
d_in: 9
d_out: 3
dims: dims:
- 512 - 512
- 512 - 512
- 512 - 512
- 512 - 512
mode: idr - 512
n_harmonic_functions_dir: 4 - 512
- 512
- 512
geometric_init: true
pooled_feature_dim: 0 pooled_feature_dim: 0
skip_in:
- 6
weight_norm: true weight_norm: true
raysampler_AdaptiveRaySampler_args: renderer_SignedDistanceFunctionRenderer_args:
n_rays_per_image_sampled_from_mask: 1024 ray_tracer_args:
n_pts_per_ray_training: 0 line_search_step: 0.5
n_pts_per_ray_evaluation: 0 line_step_iters: 3
scene_extent: 8.0 n_secant_steps: 8
renderer_class_type: SignedDistanceFunctionRenderer n_steps: 100
implicit_function_class_type: IdrFeatureField object_bounding_sphere: 8.0
sdf_threshold: 5.0e-05
ray_normal_coloring_network_args:
d_in: 9
d_out: 3
dims:
- 512
- 512
- 512
- 512
mode: idr
n_harmonic_functions_dir: 4
pooled_feature_dim: 0
weight_norm: true
raysampler_AdaptiveRaySampler_args:
n_rays_per_image_sampled_from_mask: 1024
n_pts_per_ray_training: 0
n_pts_per_ray_evaluation: 0
scene_extent: 8.0
renderer_class_type: SignedDistanceFunctionRenderer
implicit_function_class_type: IdrFeatureField
defaults: defaults:
- repro_multiseq_base.yaml - repro_multiseq_base.yaml
- _self_ - _self_
generic_model_args: model_factory_ImplicitronModelFactory_args:
chunk_size_grid: 16000 model_GenericModel_args:
view_pooler_enabled: false chunk_size_grid: 16000
global_encoder_class_type: SequenceAutodecoder view_pooler_enabled: false
global_encoder_SequenceAutodecoder_args: global_encoder_class_type: SequenceAutodecoder
autodecoder_args: global_encoder_SequenceAutodecoder_args:
n_instances: 20000 autodecoder_args:
encoding_dim: 256 n_instances: 20000
encoding_dim: 256
...@@ -2,9 +2,11 @@ defaults: ...@@ -2,9 +2,11 @@ defaults:
- repro_multiseq_base.yaml - repro_multiseq_base.yaml
- repro_feat_extractor_unnormed.yaml - repro_feat_extractor_unnormed.yaml
- _self_ - _self_
clip_grad: 1.0 model_factory_ImplicitronModelFactory_args:
generic_model_args: model_GenericModel_args:
chunk_size_grid: 16000 chunk_size_grid: 16000
view_pooler_enabled: true view_pooler_enabled: true
raysampler_AdaptiveRaySampler_args: raysampler_AdaptiveRaySampler_args:
n_rays_per_image_sampled_from_mask: 850 n_rays_per_image_sampled_from_mask: 850
training_loop_ImplicitronTrainingLoop_args:
clip_grad: 1.0
...@@ -2,16 +2,17 @@ defaults: ...@@ -2,16 +2,17 @@ defaults:
- repro_multiseq_base.yaml - repro_multiseq_base.yaml
- repro_feat_extractor_transformer.yaml - repro_feat_extractor_transformer.yaml
- _self_ - _self_
generic_model_args: model_factory_ImplicitronModelFactory_args:
chunk_size_grid: 16000 model_GenericModel_args:
raysampler_AdaptiveRaySampler_args: chunk_size_grid: 16000
n_rays_per_image_sampled_from_mask: 800 raysampler_AdaptiveRaySampler_args:
n_pts_per_ray_training: 32 n_rays_per_image_sampled_from_mask: 800
n_pts_per_ray_evaluation: 32 n_pts_per_ray_training: 32
renderer_MultiPassEmissionAbsorptionRenderer_args: n_pts_per_ray_evaluation: 32
n_pts_per_ray_fine_training: 16 renderer_MultiPassEmissionAbsorptionRenderer_args:
n_pts_per_ray_fine_evaluation: 16 n_pts_per_ray_fine_training: 16
implicit_function_class_type: NeRFormerImplicitFunction n_pts_per_ray_fine_evaluation: 16
view_pooler_enabled: true implicit_function_class_type: NeRFormerImplicitFunction
view_pooler_args: view_pooler_enabled: true
feature_aggregator_class_type: IdentityFeatureAggregator view_pooler_args:
feature_aggregator_class_type: IdentityFeatureAggregator
defaults: defaults:
- repro_multiseq_nerformer.yaml - repro_multiseq_nerformer.yaml
- _self_ - _self_
generic_model_args: model_factory_ImplicitronModelFactory_args:
view_pooler_args: model_GenericModel_args:
feature_aggregator_class_type: AngleWeightedIdentityFeatureAggregator view_pooler_args:
feature_aggregator_class_type: AngleWeightedIdentityFeatureAggregator
defaults: defaults:
- repro_multiseq_base.yaml - repro_multiseq_base.yaml
- _self_ - _self_
generic_model_args: model_factory_ImplicitronModelFactory_args:
chunk_size_grid: 16000 model_GenericModel_args:
view_pooler_enabled: false chunk_size_grid: 16000
n_train_target_views: -1 view_pooler_enabled: false
num_passes: 1 n_train_target_views: -1
loss_weights: num_passes: 1
loss_rgb_mse: 200.0 loss_weights:
loss_prev_stage_rgb_mse: 0.0 loss_rgb_mse: 200.0
loss_mask_bce: 1.0 loss_prev_stage_rgb_mse: 0.0
loss_prev_stage_mask_bce: 0.0 loss_mask_bce: 1.0
loss_autodecoder_norm: 0.001 loss_prev_stage_mask_bce: 0.0
depth_neg_penalty: 10000.0 loss_autodecoder_norm: 0.001
global_encoder_class_type: SequenceAutodecoder depth_neg_penalty: 10000.0
global_encoder_SequenceAutodecoder_args: global_encoder_class_type: SequenceAutodecoder
autodecoder_args: global_encoder_SequenceAutodecoder_args:
encoding_dim: 256 autodecoder_args:
n_instances: 20000 encoding_dim: 256
raysampler_class_type: NearFarRaySampler n_instances: 20000
raysampler_NearFarRaySampler_args: raysampler_class_type: NearFarRaySampler
n_rays_per_image_sampled_from_mask: 2048 raysampler_NearFarRaySampler_args:
min_depth: 0.05 n_rays_per_image_sampled_from_mask: 2048
max_depth: 0.05 min_depth: 0.05
n_pts_per_ray_training: 1 max_depth: 0.05
n_pts_per_ray_evaluation: 1 n_pts_per_ray_training: 1
stratified_point_sampling_training: false n_pts_per_ray_evaluation: 1
stratified_point_sampling_evaluation: false stratified_point_sampling_training: false
renderer_class_type: LSTMRenderer stratified_point_sampling_evaluation: false
implicit_function_class_type: SRNHyperNetImplicitFunction renderer_class_type: LSTMRenderer
solver_args: implicit_function_class_type: SRNHyperNetImplicitFunction
breed: adam optimizer_factory_ImplicitronOptimizerFactory_args:
breed: Adam
lr: 5.0e-05 lr: 5.0e-05
defaults: defaults:
- repro_multiseq_srn_ad_hypernet.yaml - repro_multiseq_srn_ad_hypernet.yaml
- _self_ - _self_
generic_model_args: model_factory_ImplicitronModelFactory_args:
num_passes: 1 model_GenericModel_args:
implicit_function_SRNHyperNetImplicitFunction_args: num_passes: 1
pixel_generator_args: implicit_function_SRNHyperNetImplicitFunction_args:
n_harmonic_functions: 0 pixel_generator_args:
hypernet_args: n_harmonic_functions: 0
n_harmonic_functions: 0 hypernet_args:
n_harmonic_functions: 0
...@@ -2,29 +2,30 @@ defaults: ...@@ -2,29 +2,30 @@ defaults:
- repro_multiseq_base.yaml - repro_multiseq_base.yaml
- repro_feat_extractor_normed.yaml - repro_feat_extractor_normed.yaml
- _self_ - _self_
generic_model_args: model_factory_ImplicitronModelFactory_args:
chunk_size_grid: 32000 model_GenericModel_args:
num_passes: 1 chunk_size_grid: 32000
n_train_target_views: -1 num_passes: 1
loss_weights: n_train_target_views: -1
loss_rgb_mse: 200.0 loss_weights:
loss_prev_stage_rgb_mse: 0.0 loss_rgb_mse: 200.0
loss_mask_bce: 1.0 loss_prev_stage_rgb_mse: 0.0
loss_prev_stage_mask_bce: 0.0 loss_mask_bce: 1.0
loss_autodecoder_norm: 0.0 loss_prev_stage_mask_bce: 0.0
depth_neg_penalty: 10000.0 loss_autodecoder_norm: 0.0
raysampler_class_type: NearFarRaySampler depth_neg_penalty: 10000.0
raysampler_NearFarRaySampler_args: raysampler_class_type: NearFarRaySampler
n_rays_per_image_sampled_from_mask: 2048 raysampler_NearFarRaySampler_args:
min_depth: 0.05 n_rays_per_image_sampled_from_mask: 2048
max_depth: 0.05 min_depth: 0.05
n_pts_per_ray_training: 1 max_depth: 0.05
n_pts_per_ray_evaluation: 1 n_pts_per_ray_training: 1
stratified_point_sampling_training: false n_pts_per_ray_evaluation: 1
stratified_point_sampling_evaluation: false stratified_point_sampling_training: false
renderer_class_type: LSTMRenderer stratified_point_sampling_evaluation: false
implicit_function_class_type: SRNImplicitFunction renderer_class_type: LSTMRenderer
view_pooler_enabled: true implicit_function_class_type: SRNImplicitFunction
solver_args: view_pooler_enabled: true
breed: adam optimizer_factory_ImplicitronOptimizerFactory_args:
breed: Adam
lr: 5.0e-05 lr: 5.0e-05
defaults: defaults:
- repro_multiseq_srn_wce.yaml - repro_multiseq_srn_wce.yaml
- _self_ - _self_
generic_model_args: model_factory_ImplicitronModelFactory_args:
num_passes: 1 model_GenericModel_args:
implicit_function_SRNImplicitFunction_args: num_passes: 1
pixel_generator_args: implicit_function_SRNImplicitFunction_args:
n_harmonic_functions: 0 pixel_generator_args:
raymarch_function_args: n_harmonic_functions: 0
n_harmonic_functions: 0 raymarch_function_args:
n_harmonic_functions: 0
defaults: defaults:
- repro_base - repro_base
- _self_ - _self_
data_source_args: data_source_ImplicitronDataSource_args:
data_loader_map_provider_SequenceDataLoaderMapProvider_args: data_loader_map_provider_SequenceDataLoaderMapProvider_args:
batch_size: 1 batch_size: 1
dataset_length_train: 1000 dataset_length_train: 1000
...@@ -12,28 +12,30 @@ data_source_args: ...@@ -12,28 +12,30 @@ data_source_args:
n_frames_per_sequence: -1 n_frames_per_sequence: -1
test_restrict_sequence_id: 0 test_restrict_sequence_id: 0
test_on_train: false test_on_train: false
generic_model_args: model_factory_ImplicitronModelFactory_args:
render_image_height: 800 model_GenericModel_args:
render_image_width: 800 render_image_height: 800
log_vars: render_image_width: 800
- loss_rgb_psnr_fg log_vars:
- loss_rgb_psnr - loss_rgb_psnr_fg
- loss_eikonal - loss_rgb_psnr
- loss_prev_stage_rgb_psnr - loss_eikonal
- loss_mask_bce - loss_prev_stage_rgb_psnr
- loss_prev_stage_mask_bce - loss_mask_bce
- loss_rgb_mse - loss_prev_stage_mask_bce
- loss_prev_stage_rgb_mse - loss_rgb_mse
- loss_depth_abs - loss_prev_stage_rgb_mse
- loss_depth_abs_fg - loss_depth_abs
- loss_kl - loss_depth_abs_fg
- loss_mask_neg_iou - loss_kl
- objective - loss_mask_neg_iou
- epoch - objective
- sec/it - epoch
solver_args: - sec/it
optimizer_factory_ImplicitronOptimizerFactory_args:
lr: 0.0005 lr: 0.0005
max_epochs: 400 multistep_lr_milestones:
milestones:
- 200 - 200
- 300 - 300
training_loop_ImplicitronTrainingLoop_args:
max_epochs: 400
defaults: defaults:
- repro_singleseq_base - repro_singleseq_base
- _self_ - _self_
generic_model_args: model_factory_ImplicitronModelFactory_args:
loss_weights: model_GenericModel_args:
loss_mask_bce: 100.0 loss_weights:
loss_kl: 0.0 loss_mask_bce: 100.0
loss_rgb_mse: 1.0 loss_kl: 0.0
loss_eikonal: 0.1 loss_rgb_mse: 1.0
chunk_size_grid: 65536 loss_eikonal: 0.1
num_passes: 1 chunk_size_grid: 65536
view_pooler_enabled: false num_passes: 1
implicit_function_IdrFeatureField_args: view_pooler_enabled: false
n_harmonic_functions_xyz: 6 implicit_function_IdrFeatureField_args:
bias: 0.6 n_harmonic_functions_xyz: 6
d_in: 3 bias: 0.6
d_out: 1 d_in: 3
dims: d_out: 1
- 512
- 512
- 512
- 512
- 512
- 512
- 512
- 512
geometric_init: true
pooled_feature_dim: 0
skip_in:
- 6
weight_norm: true
renderer_SignedDistanceFunctionRenderer_args:
ray_tracer_args:
line_search_step: 0.5
line_step_iters: 3
n_secant_steps: 8
n_steps: 100
object_bounding_sphere: 8.0
sdf_threshold: 5.0e-05
ray_normal_coloring_network_args:
d_in: 9
d_out: 3
dims: dims:
- 512 - 512
- 512 - 512
- 512 - 512
- 512 - 512
mode: idr - 512
n_harmonic_functions_dir: 4 - 512
- 512
- 512
geometric_init: true
pooled_feature_dim: 0 pooled_feature_dim: 0
skip_in:
- 6
weight_norm: true weight_norm: true
raysampler_AdaptiveRaySampler_args: renderer_SignedDistanceFunctionRenderer_args:
n_rays_per_image_sampled_from_mask: 1024 ray_tracer_args:
n_pts_per_ray_training: 0 line_search_step: 0.5
n_pts_per_ray_evaluation: 0 line_step_iters: 3
renderer_class_type: SignedDistanceFunctionRenderer n_secant_steps: 8
implicit_function_class_type: IdrFeatureField n_steps: 100
object_bounding_sphere: 8.0
sdf_threshold: 5.0e-05
ray_normal_coloring_network_args:
d_in: 9
d_out: 3
dims:
- 512
- 512
- 512
- 512
mode: idr
n_harmonic_functions_dir: 4
pooled_feature_dim: 0
weight_norm: true
raysampler_AdaptiveRaySampler_args:
n_rays_per_image_sampled_from_mask: 1024
n_pts_per_ray_training: 0
n_pts_per_ray_evaluation: 0
renderer_class_type: SignedDistanceFunctionRenderer
implicit_function_class_type: IdrFeatureField
defaults:
- repro_singleseq_base
- _self_
exp_dir: "./data/nerf_blender_publ/${oc.env:BLENDER_SINGLESEQ_CLASS}"
data_source_ImplicitronDataSource_args:
data_loader_map_provider_SequenceDataLoaderMapProvider_args:
dataset_length_train: 100
dataset_map_provider_class_type: BlenderDatasetMapProvider
dataset_map_provider_BlenderDatasetMapProvider_args:
base_dir: ${oc.env:BLENDER_DATASET_ROOT}
object_name: ${oc.env:BLENDER_SINGLESEQ_CLASS}
path_manager_factory_class_type: PathManagerFactory
n_known_frames_for_test: null
path_manager_factory_PathManagerFactory_args:
silence_logs: true
model_factory_ImplicitronModelFactory_args:
model_GenericModel_args:
raysampler_AdaptiveRaySampler_args:
n_rays_per_image_sampled_from_mask: 4096
scene_extent: 2.0
renderer_MultiPassEmissionAbsorptionRenderer_args:
n_pts_per_ray_fine_training: 128
n_pts_per_ray_fine_evaluation: 128
loss_weights:
loss_rgb_mse: 1.0
loss_prev_stage_rgb_mse: 1.0
loss_mask_bce: 0.0
loss_prev_stage_mask_bce: 0.0
loss_autodecoder_norm: 0.00
optimizer_factory_ImplicitronOptimizerFactory_args:
exponential_lr_step_size: 2000
training_loop_ImplicitronTrainingLoop_args:
max_epochs: 2000
visualize_interval: 0
validation_interval: 30
...@@ -2,8 +2,9 @@ defaults: ...@@ -2,8 +2,9 @@ defaults:
- repro_singleseq_wce_base.yaml - repro_singleseq_wce_base.yaml
- repro_feat_extractor_unnormed.yaml - repro_feat_extractor_unnormed.yaml
- _self_ - _self_
generic_model_args: model_factory_ImplicitronModelFactory_args:
chunk_size_grid: 16000 model_GenericModel_args:
view_pooler_enabled: true chunk_size_grid: 16000
raysampler_AdaptiveRaySampler_args: view_pooler_enabled: true
n_rays_per_image_sampled_from_mask: 850 raysampler_AdaptiveRaySampler_args:
n_rays_per_image_sampled_from_mask: 850
...@@ -2,16 +2,17 @@ defaults: ...@@ -2,16 +2,17 @@ defaults:
- repro_singleseq_wce_base.yaml - repro_singleseq_wce_base.yaml
- repro_feat_extractor_transformer.yaml - repro_feat_extractor_transformer.yaml
- _self_ - _self_
generic_model_args: model_factory_ImplicitronModelFactory_args:
chunk_size_grid: 16000 model_GenericModel_args:
view_pooler_enabled: true chunk_size_grid: 16000
implicit_function_class_type: NeRFormerImplicitFunction view_pooler_enabled: true
raysampler_AdaptiveRaySampler_args: implicit_function_class_type: NeRFormerImplicitFunction
n_rays_per_image_sampled_from_mask: 800 raysampler_AdaptiveRaySampler_args:
n_pts_per_ray_training: 32 n_rays_per_image_sampled_from_mask: 800
n_pts_per_ray_evaluation: 32 n_pts_per_ray_training: 32
renderer_MultiPassEmissionAbsorptionRenderer_args: n_pts_per_ray_evaluation: 32
n_pts_per_ray_fine_training: 16 renderer_MultiPassEmissionAbsorptionRenderer_args:
n_pts_per_ray_fine_evaluation: 16 n_pts_per_ray_fine_training: 16
view_pooler_args: n_pts_per_ray_fine_evaluation: 16
feature_aggregator_class_type: IdentityFeatureAggregator view_pooler_args:
feature_aggregator_class_type: IdentityFeatureAggregator
defaults: defaults:
- repro_singleseq_base.yaml - repro_singleseq_base.yaml
- _self_ - _self_
generic_model_args: model_factory_ImplicitronModelFactory_args:
num_passes: 1 model_GenericModel_args:
chunk_size_grid: 32000 num_passes: 1
view_pooler_enabled: false chunk_size_grid: 32000
loss_weights: view_pooler_enabled: false
loss_rgb_mse: 200.0 loss_weights:
loss_prev_stage_rgb_mse: 0.0 loss_rgb_mse: 200.0
loss_mask_bce: 1.0 loss_prev_stage_rgb_mse: 0.0
loss_prev_stage_mask_bce: 0.0 loss_mask_bce: 1.0
loss_autodecoder_norm: 0.0 loss_prev_stage_mask_bce: 0.0
depth_neg_penalty: 10000.0 loss_autodecoder_norm: 0.0
raysampler_class_type: NearFarRaySampler depth_neg_penalty: 10000.0
raysampler_NearFarRaySampler_args: raysampler_class_type: NearFarRaySampler
n_rays_per_image_sampled_from_mask: 2048 raysampler_NearFarRaySampler_args:
min_depth: 0.05 n_rays_per_image_sampled_from_mask: 2048
max_depth: 0.05 min_depth: 0.05
n_pts_per_ray_training: 1 max_depth: 0.05
n_pts_per_ray_evaluation: 1 n_pts_per_ray_training: 1
stratified_point_sampling_training: false n_pts_per_ray_evaluation: 1
stratified_point_sampling_evaluation: false stratified_point_sampling_training: false
renderer_class_type: LSTMRenderer stratified_point_sampling_evaluation: false
implicit_function_class_type: SRNImplicitFunction renderer_class_type: LSTMRenderer
solver_args: implicit_function_class_type: SRNImplicitFunction
breed: adam optimizer_factory_ImplicitronOptimizerFactory_args:
breed: Adam
lr: 5.0e-05 lr: 5.0e-05
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment