pennpolygons / cv-boilerplate

Open-source boilerplate for computer vision research
MIT License
16 stars 2 forks source link

changing hydra default new folder name #17

Open mchiquier opened 4 years ago

mchiquier commented 4 years ago

Changing it so that it names it minimally according to date, but mostly includes the top 5 characteristic configs of the experiment

omry commented 4 years ago

Curious what you mean, can you give an example?

If I understand you correctly, check this up.

goodmattg commented 4 years ago

@omry Yes! This task is to take advantage of the run output directory functionality in Hydra. We expect the base use-case for individual / small-team research is output directories grouped by experiment name, then sub-experiments (e.g. sweeps).

/outputs ----/experiment1 ------------/factor_sweep ----------------/1 ----------------/2 ----/experiment2 ------------/factor_sweep ----------------/1 ----------------/2

omry commented 4 years ago

Gotcha. This should be doable by configuring the output directory as described in the link above.

mchiquier commented 4 years ago

@omry, thanks for your interest!

This feature would simply automatize modifying the hydra.yaml config from the command line. It is a simple change, but right now you have to manually modify hydra.yaml. As the link mentions, "You can include some Hydra config snippet in your own config to override it directly, or compose in different configurations provided by plugins or by your own code". Our feature does just that : code that allows the user specify what variable to group by as a variable in their own config file from the command line as they run a sweep. For example, the user could change from Matt's choice of grouping by "experiment" to grouping by "myconfig.dataset" using the command line: --group_by myconfig.dataset, and this would update the hydra.yaml file automatically.

omry commented 4 years ago

Where are the names experiment1 and factor_sweep coming from? Are they dynamic?

omry commented 4 years ago

Hydra is extremely flexible. I don't have a full understanding of what you are trying to do but I suspect you are doing it wrong if you need another tool to generate the config for Hydra.

mchiquier commented 4 years ago

Could you please point me to the tool that allows you to modify the config for Hydra non-manually?

mchiquier commented 4 years ago

We are not claiming that it is not extremely flexible, in fact we are using it because we believe it is. We are not adding any new functionality, just making it easier to configure on-the-fly.

omry commented 4 years ago

Hydra generates the configuration object dynamically. There are multiple ways you can manipulate the config with Hydra, from command line overrides to composing your configuration from multiple config group options. I suggest that you go through the tutorial in Hydra to get a better understanding of how to use it.

Can you give a simple example of what you are trying to do that is not possible by using Hydra directly? Either I will tell you how to do it or I will learn about an unsupported use case.

omry commented 4 years ago

Mia, it might be easier if you join the Hydra chat.

mchiquier commented 4 years ago

Will do, thanks.