Commit af48430e authored by Jeremy Reizenstein's avatar Jeremy Reizenstein Committed by Facebook GitHub Bot
Browse files

IT readme updates

Summary: Updates for recent replaceables.

Reviewed By: kjchalup

Differential Revision: D38437370

fbshipit-source-id: 00d600aa451e5849ba48107cd7a4319e9fc8549f
parent a39cad40
...@@ -203,14 +203,29 @@ to replace the implementation and potentially override the parameters. ...@@ -203,14 +203,29 @@ to replace the implementation and potentially override the parameters.
# Code and config structure # Code and config structure
The main object for this trainer loop is `Experiment`. It has four top-level replaceable components.
* `data_source`: This is a `DataSourceBase` which defaults to `ImplicitronDataSource`.
It constructs the data sets and dataloaders.
* `model_factory`: This is a `ModelFactoryBase` which defaults to `ImplicitronModelFactory`.
It constructs the model, which is usually an instance of implicitron's main `GenericModel` class, and can load its weights from a checkpoint.
* `optimizer_factory`: This is an `OptimizerFactoryBase` which defaults to `ImplicitronOptimizerFactory`.
It constructs the optimizer and can load its weights from a checkpoint.
* `training_loop`: This is a `TrainingLoopBase` which defaults to `ImplicitronTrainingLoop` and defines the main training loop.
As per above, the config structure is parsed automatically from the module hierarchy. As per above, the config structure is parsed automatically from the module hierarchy.
In particular, model parameters are contained in `generic_model_args` node, and dataset parameters in `data_source_args` node. In particular, for ImplicitronModelFactory with generic model, model parameters are contained in the `model_factory_ImplicitronModelFactory_args.model_GenericModel_args` node, and dataset parameters in `data_source_ImplicitronDataSource_args` node.
Here is the class structure (single-line edges show aggregation, while double lines show available implementations): Here is the class structure of GenericModel (single-line edges show aggregation, while double lines show available implementations):
``` ```
generic_model_args: GenericModel model_GenericModel_args: GenericModel
└-- sequence_autodecoder_args: Autodecoder └-- global_encoder_*_args: GlobalEncoderBase
└-- raysampler_args: RaySampler ╘== SequenceAutodecoder
└-- autodecoder_args: Autodecoder
╘== HarmonicTimeEncoder
└-- raysampler_*_args: RaySampler
╘== AdaptiveRaysampler
╘== NearFarRaysampler
└-- renderer_*_args: BaseRenderer └-- renderer_*_args: BaseRenderer
╘== MultiPassEmissionAbsorptionRenderer ╘== MultiPassEmissionAbsorptionRenderer
╘== LSTMRenderer ╘== LSTMRenderer
...@@ -228,19 +243,16 @@ generic_model_args: GenericModel ...@@ -228,19 +243,16 @@ generic_model_args: GenericModel
╘== IdrFeatureField ╘== IdrFeatureField
└-- image_feature_extractor_*_args: FeatureExtractorBase └-- image_feature_extractor_*_args: FeatureExtractorBase
╘== ResNetFeatureExtractor ╘== ResNetFeatureExtractor
└-- view_sampler_args: ViewSampler └-- view_pooler_args: ViewPooler
└-- feature_aggregator_*_args: FeatureAggregatorBase └-- view_sampler_args: ViewSampler
╘== IdentityFeatureAggregator └-- feature_aggregator_*_args: FeatureAggregatorBase
╘== AngleWeightedIdentityFeatureAggregator ╘== IdentityFeatureAggregator
╘== AngleWeightedReductionFeatureAggregator ╘== AngleWeightedIdentityFeatureAggregator
╘== ReductionFeatureAggregator ╘== AngleWeightedReductionFeatureAggregator
solver_args: init_optimizer ╘== ReductionFeatureAggregator
data_source_args: ImplicitronDataSource
└-- dataset_map_provider_*_args
└-- data_loader_map_provider_*_args
``` ```
Please look at the annotations of the respective classes or functions for the lists of hyperparameters. Please look at the annotations of the respective classes or functions for the lists of hyperparameters. `tests/experiment.yaml` shows every possible option if you have no user-defined classes.
# Reproducing CO3D experiments # Reproducing CO3D experiments
......
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