Refactors the execution drivers to include all lagom logic. Removes lagom functions for the experiments.
Last PR of the overall Maggy refactoring. Removes the redundancies in the separate lagom functions. The experiment now only creates the experiment driver, which takes care of the details of each implementation.
Main changes:
experiment.py: Instead of dispatching the functions, now only dispatches for driver initialization and executes the experiment via the driver.
driver.py: Now defines both the experiment as well as several abstract callback functions for it. The actual experiment is started by calling the driver.run() function. Each driver can modify its executor function by returning its own _patching_fn.
distributed_driver.py, ablation_driver.py, optimization_driver.py: Implemented the necessary callbacks and patching function. Minor renames to emphasize which callbacks belong to message digestion and which ones to the experiment.
Where possible, arguments were reduced to APP_ID and RUN_ID. We had a whole variety of arguments such as log_dir names etc that are calculated from the app_id /run_id. Passing/keeping track of all those arguments is rather tedious, so I began to use app_id/run_id whereever possible to make things as simple as possible.
Misc:
dist_executor.py, trail_executor.py: Small name changes to increase consistency in naming style.
utils.py: Small simplifications, adapted functions to work with app_id and run_id where possible to simplify arguments.
Refactors the execution drivers to include all lagom logic. Removes lagom functions for the experiments.
Last PR of the overall Maggy refactoring. Removes the redundancies in the separate lagom functions. The experiment now only creates the experiment driver, which takes care of the details of each implementation.
Main changes:
Where possible, arguments were reduced to APP_ID and RUN_ID. We had a whole variety of arguments such as log_dir names etc that are calculated from the app_id /run_id. Passing/keeping track of all those arguments is rather tedious, so I began to use app_id/run_id whereever possible to make things as simple as possible.
Misc: