Closed nginyc closed 5 years ago
This is a big PR. Could you give a list of API changes for existing users? Would there be any issues if they want to run their existing examples after this PR is merged?
the documentation on hyper-parameter tuning is replaced by model tuning? Model tuning doc is a bit complex. It would be better to start with simple schemes, e.g., just for hyper-parameter tuning. And then add advanced stuff, e.g., tuning policies like early stopping, and architecture tuning
Hi @nudles, I have updated the details of the PR with API changes, some of which are not backward compatible. I will be creating a full client API changelist when dev
is to be merged to master
, and it will be in the release notes. Let me know if there's more.
With regards to the new model tuning docs, there were no existing documentation on how model tuning is implemented on Rafiki. Following your feedback, I will be simplifying the new model tuning docs
Have resolved the conflicts, improved the model tuning docs slightly, and did some testing. Ready to be merged
Fixes #101 Fixes #97 Fixes #98 Fixes #50 Fixes #99
API Changes
For model developers:
BaseModel.dump_parameters()
must now strictly conform to typeDict[str, Union[str, int, float, np.ndarray]]
**rafiki.model.dataset_utils
has been relocated intorafiki.model.utils
asutils.dataset
**rafiki.model.logger
has been relocated intorafiki.model.utils
asutils.logger
**test_model_class
has been relocated fromrafiki.model
intorafiki.model.dev
**rafiki.constants.TaskType
has been removed in favour of simply using strings (to not hard-code task names in core code)**shared_params
forBaseModel.train()
**BaseModel.teardown()
to do any class-wide teardown logic across trialsPolicyKnob
&ArchKnob
knob types (to leverage on new cross-trial parameter sharing & architecture tuning features)For application developers:
TIME_HOURS
for creating train jobsrafiki.constants.BudgetType
has been renamed torafiki.constants.BudgetOption
**For application users:
/predict
for inference jobs now support batch predictions (docs)** specifies that change is NOT backward compatible
Full Changelist
Major changes:
TIME_HOURS
(docs)train_densenet.py
(code)PolicyKnob
andArchKnob
, with a sample usage scriptrun_enas.py
(docs, code)Minor changes:
This branch's changes are largely reflected in as updated documentation deployed at https://nginyc.github.io/rafiki/docs/0.2.0. In particular, there is a new "How Model Tuning Works" page, and we have 2 new model training scripts
run_enas.py
andtrain_densenet.py
.Sorry for the long commit history - I was experimenting with ENAS for a while and there was a huge departure in code.