Open
Description
The current setup with some parameters specified as CLI flags and others in the JSON file is not optimal. There are two competing needs:
- We would like to group related parameters in a JSON file so that it's easy to share model configurations with the community. Attaching the JSON file to a saved checkpoint makes it trivial to replicate experiments and test networks that others with more resources have trained, thus helping democratize the platform.
- Changing individual parameters during development should be very, very easy.
We should find a way to accommodate both. I propose:
- All parameters are defined as flags.
- A list of JSON files are read sequentially and merged, and finally the supplied flags are merged with the combined JSON dictionary for manual overrides.
- We would have a JSON file with model parameters, a JSON file with training parameters (learning rate, etc.), and users could add another one with their specific overrides.
It still doesn't feel optimal, though. Any suggestions?