|
| 1 | +# PassTheTorch |
| 2 | +Framework for reproducible and trackable Machine-Learning experiments. |
| 3 | +This project's aim is to allow independent coding of ML models, data loaders, progress tracking and hyperparameter optimization |
| 4 | + |
| 5 | +## Setup |
| 6 | +```sh |
| 7 | +git clone https://ctrl-q/pass-the-torch |
| 8 | +cd pass-the-torch |
| 9 | +pip install -r requirements.txt |
| 10 | +``` |
| 11 | +## Models |
| 12 | +* The base classes for all models are defined in [models/base.py](models/base.py) |
| 13 | +* The other files in that folder are provided as examples |
| 14 | + |
| 15 | + |
| 16 | +## Experiments |
| 17 | +All possible experiments are stored in the [experiments](experiments) folder. <br> |
| 18 | +Some hyperparameters are common to all experiments and some are particular to an experiment <br><br> |
| 19 | +All hyperparameters except for `datapath` and `trials` can be specified as: |
| 20 | +1. a value |
| 21 | +1. a tuple of 2 values, which will be interpreted as a range* |
| 22 | +1. a list of multiple values, which will be interpreted as a discrete list of choices* |
| 23 | + |
| 24 | +All hyperparams that are lists or tuples will be tuned via [scikit-optimize](https://scikit-optimize.github.io/) for *`trials`* iterations |
| 25 | + |
| 26 | +\* Please quote tuples or lists in the command line. *e.g.* --lr (0.001, 0.1) -> --lr '(0.001, 0.1)' <br> |
| 27 | + |
| 28 | +Training progress will be available via [tensorboardX](https://tensorboardx.readthedocs.io/) |
| 29 | + |
| 30 | + |
| 31 | +## Utils |
| 32 | +Can be used to store any code for preparing your data for training, _e.g._ for dataloaders, logging, or anything else you could think of. |
| 33 | + |
| 34 | +## Configuration |
| 35 | +* Add your own model to the [models](models) folder. The model should subclass `PyTorchModel` or `SKLearnModel` |
| 36 | + |
| 37 | +## Running |
| 38 | +1. Choose an experiment from the [experiments](experiments) folder |
| 39 | +1. Run `"python3 -m experiments.<experiment_name> -h"` to get the list of hyperparameters* |
| 40 | +1. Run `"python3 -m experiments.<experiment_name>"` with hyperparams specified** |
| 41 | + |
| 42 | +The experiments will be saved in the following path: `<experiment name>/<hyphen-separated hyperparams in the same order as in the argparse>` |
| 43 | + |
| 44 | +\* All experiments **must** be run from this folder, and **not** from the [experiments](experiments) folder <br> |
| 45 | +\*\* The double quotes are needed |
0 commit comments