We changed how configurations work (again)

One of the exciting things we did this week was updating (once again) how the tbp.monty configuration is put together.

The main idea is that we removed all inheritance from the configurations. To set up an experiment configuration, you now assemble a configuration from available components. We believe that this greatly simplifies reading and writing configurations.

For example, here’s what the base_config_10distinctobj_dist_agent experiment configuration looks like now:

# @package _global_

defaults:
  - /monty: evidencegraph_exp1000_emin_t3_tot2500
  - /monty/motor_system_config: informed_5_goal1
  - /monty/learning_module: evidence_1lm_nn5_dod003
  - /monty/sensor_module: camera_dist_delta
  - /monty/connectivity: 1lm_1sm
  - /environment: habitat_ycb_dist_agent_semantics0
  - /env_interface: eval_distinctobj_predefined
  - /env_interface/positioning_procedures_eval: getgoodview_viewfinder_patch
  - /env_interface/transform: missing_depthto3d_sensor2_semantic0
  - /logging: basic_warning_wandb_monty_runs

experiment:
  _target_: tbp.monty.frameworks.experiments.object_recognition_experiments.MontyObjectRecognitionExperiment
  config:
    show_sensor_output: false
    max_train_steps: 1000
    max_eval_steps: 500
    max_total_steps: 6000
    n_train_epochs: 3
    model_name_or_path: ${constants.pretrained_dir}/surf_agent_1lm_10distinctobj/pretrained/
    n_eval_epochs: ${constants.rotations_all_count}
    min_lms_match: 1
    seed: 42
    supervised_lm_ids: []
    python_log_level: DEBUG
    logging:
      run_name: base_config_10distinctobj_dist_agent

Notably, if you open any experiment configuration file, you’ll see the same basic structure.

We still have to update tutorials and do some follow-up work. There is also room for improvement in what configuration components are available.

If you run into any issues or have questions, let us know here.

Cheers!

6 Likes