allenai / tango

Organize your experiments into discrete steps that can be cached and reused throughout the lifetime of your research project.

Home Page:https://ai2-tango.readthedocs.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How do I get nice formatted terminal logs when using hydra instead of tango's jsonnet configs

BigRedT opened this issue · comments

I have been trying to use Hydra for config management (more flexible command line interface) and therefore create step graphs and register runs & workspaces programmatically as follows:

@hydra.main(version_base=None,config_path="./exp_configs", config_name="some_exp_name")
def main(cfg):
    workspace = Workspace.from_url(cfg.tango_workspace)
    step_graph = create_step_graph(cfg)
    run = workspace.register_run(StepGraph.ordered_steps(step_graph),name=cfg.run_name)
    executor = Executor(workspace=workspace,parallelism=None)
    output = executor.execute_step_graph(step_graph)

if __name__=='__main__':
    main()

I execute this script with the usual python -m filename

Two questions:

  • Is this the right way to do tango runs when NOT using tango's jsonnet configs or is there a better way?
  • When I run experiments like this, I do not get the nicely color-coded and formatted terminal output that I get with tango run config.jsonnet. Is there a way to achieve that in this particular setup?

Hey Tanmay,

For your first question, yes that's probably fine. For your second question, add this to the beginning of your script:

from tango.common.logging import initialize_logging

initialize_logging(log_level="info", enable_cli_logs=True)

Perfect!

Is there also a function that would give a summary of executed steps as follows:

Screen Shot 2022-12-09 at 1 45 20 PM

That functionality is not part of the public API, but it could be... I'd be happy to accept a PR that moves this code into a public function.

Created a PR #491