Auto-Net is a tool for automatically configure neural networks using auto-sklearn, a system for automated machine learning. The result of this work was published as a workshop paper: Towards automatically-tuned neural networks. In this repository you could find the component that goes into auto-sklearn and the plotting scripts used for hyperparameter analysis (requires fANOVA dependency).
- auto-sklearn
- Theano (0.9.0rc1)
- Lasagne (development branch)
Auto-sklearn uses scikit-learn's component methods, as Auto-Net does. These components are located in inside autosk_dev_test/component/. Inside the component's directory the implementation of the code in Theano can be found and the unit tests.
To install inside auto-sklearn (recommended):
- Install auto-sklearn with editing capabilities (e.g.
pip -e
) - Clone this repository
- Copy the file
autosk_dev_test/component/DeepNetIterative.py
topath_to_autosklearn/auto-sklearn/autosklearn/pipeline/components/classification
- Copy the file
autosk_dev_test/component/RegDeepNet.py
topath_to_autosklearn/auto-sklearn/autosklearn/pipeline/components/regression
- Copy the file
autosk_dev_test/component/implementation/FeedForwardNet.py
topath_to_autosklearn/auto-sklearn/autosklearn/pipeline/implementations
- Fix imports (actually just one line)
To only use auto-net inside autosklearn (Taken from auto-sklearn example):
automl = autosklearn.classification.AutoSklearnClassifier(include_estimators=['DeepNetIterative'])
To use auto-net as a third party component (Experimental):
- Install auto-sklearn
- Clone this repository
- Optional: Add the path of component to your PYTHONPATH
Add the component before starting autosklearn:
from autosklearn.pipeline.components.classification import add_classifier
from component import DeepNetIterative
add_classifier(DeepNetIterative.DeepNetIterative)
[...]
automl = autosklearn.automl.AutoML(include_estimators=['DeepNetIterative'])
Because training Auto-Net provided with a lot of data to observe
hyperparameters' behavior, I used the scripts inside the
plotting_params_distro
folder.
Dependencies required to run the notebooks and python scripts:
- numpy
- pandas
- jupyter notebook
- seaborn
- fork of fANOVA