mirror of
https://github.com/facebookresearch/pytorch3d.git
synced 2025-08-02 03:42:50 +08:00
Summary: Introduces the OverfitModel for NeRF-style training with overfitting to one scene. It is a specific case of GenericModel. It has been disentangle to ease usage. ## General modification 1. Modularize a minimum GenericModel to introduce OverfitModel 2. Introduce OverfitModel and ensure through unit testing that it behaves like GenericModel. ## Modularization The following methods have been extracted from GenericModel to allow modularity with ManyViewModel: - get_objective is now a call to weighted_sum_losses - log_loss_weights - prepare_inputs The generic methods have been moved to an utils.py file. Simplify the code to introduce OverfitModel. Private methods like chunk_generator are now public and can now be used by ManyViewModel. Reviewed By: shapovalov Differential Revision: D43771992 fbshipit-source-id: 6102aeb21c7fdd56aa2ff9cd1dd23fd9fbf26315
57 lines
1.9 KiB
YAML
57 lines
1.9 KiB
YAML
defaults:
|
|
- overfit_singleseq_base
|
|
- _self_
|
|
exp_dir: "./data/overfit_nerf_blender_repro/${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}/${oc.env:BLENDER_SINGLESEQ_CLASS}
|
|
n_known_frames_for_test: null
|
|
object_name: ${oc.env:BLENDER_SINGLESEQ_CLASS}
|
|
path_manager_factory_class_type: PathManagerFactory
|
|
path_manager_factory_PathManagerFactory_args:
|
|
silence_logs: true
|
|
|
|
model_factory_ImplicitronModelFactory_args:
|
|
model_class_type: "OverfitModel"
|
|
model_OverfitModel_args:
|
|
mask_images: false
|
|
raysampler_class_type: AdaptiveRaySampler
|
|
raysampler_AdaptiveRaySampler_args:
|
|
n_pts_per_ray_training: 64
|
|
n_pts_per_ray_evaluation: 64
|
|
n_rays_per_image_sampled_from_mask: 4096
|
|
stratified_point_sampling_training: true
|
|
stratified_point_sampling_evaluation: false
|
|
scene_extent: 2.0
|
|
scene_center:
|
|
- 0.0
|
|
- 0.0
|
|
- 0.0
|
|
renderer_MultiPassEmissionAbsorptionRenderer_args:
|
|
density_noise_std_train: 0.0
|
|
n_pts_per_ray_fine_training: 128
|
|
n_pts_per_ray_fine_evaluation: 128
|
|
raymarcher_EmissionAbsorptionRaymarcher_args:
|
|
blend_output: false
|
|
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: 3001
|
|
lr_policy: LinearExponential
|
|
linear_exponential_lr_milestone: 200
|
|
|
|
training_loop_ImplicitronTrainingLoop_args:
|
|
max_epochs: 6000
|
|
metric_print_interval: 10
|
|
store_checkpoints_purge: 3
|
|
test_when_finished: true
|
|
validation_interval: 100
|