Running An Experiment From A Different Repository

If you have your own repository and want to run your own experiment or a benchmark, you do not need to replicate the tbp.monty benchmarks setup.

📘

We have a tbp.monty_project_template template repository, so that you can quickly use tbp.monty for your project, prototype, or paper.

You have the option of running everything from a single script file. The general setup is:

from tbp.monty.frameworks.run_env import setup_env

# call setup_env() to initialize environment used by
# tbp.monty configuration and runtime.
setup_env()

# imports from tbp.monty for use in your configuration

# import run or run_parallel to run the experiment
from tbp.monty.frameworks.run import run  # noqa: E402
from tbp.monty.frameworks.run_parallel import run_parallel  # noqa: E402

experiment_config = # your configuration

run(experiment_config)
# or
run_parallel(experiment_config)

A more filled out example:

import os

from tbp.monty.frameworks.run_env import setup_env

setup_env()

from tbp.monty.frameworks.config_utils.config_args import (  # noqa: E402
    LoggingConfig,
    SingleCameraMontyConfig,
)
from tbp.monty.frameworks.config_utils.make_dataset_configs import (  # noqa: E402
    ExperimentArgs,
    get_env_dataloader_per_object_by_idx,
)
from tbp.monty.frameworks.environments import embodied_data as ED  # noqa: E402
from tbp.monty.frameworks.experiments import MontyExperiment  # noqa: E402
from tbp.monty.frameworks.run import run  # noqa: E402
from tbp.monty.simulators.habitat.configs import (  # noqa: E402
    SinglePTZHabitatDatasetArgs,
)

first_experiment = dict(
    experiment_class=MontyExperiment,
    logging_config=LoggingConfig(
        log_parallel_wandb=False,
        run_name="test",
        output_dir=os.path.expanduser(
            os.path.join(os.getenv("MONTY_LOGS"), "projects/monty_runs/test")
        ),
    ),
    experiment_args=ExperimentArgs(
        do_eval=False,
        max_train_steps=1,
        n_train_epochs=1,
    ),
    monty_config=SingleCameraMontyConfig(),
    dataset_class=ED.EnvironmentDataset,
    dataset_args=SinglePTZHabitatDatasetArgs(),
    train_dataloader_class=ED.EnvironmentDataLoaderPerObject,
    train_dataloader_args=get_env_dataloader_per_object_by_idx(start=0, stop=1),
)

run(first_experiment)




Help Us Make This Page Better

All our docs are open-source. If something is wrong or unclear, submit a PR to fix it!

Make a Contribution

Learn how to contribute to our docs