AutoyML is a toy automatic machine learning library made for learning purposes.
The aim was to develop a Keras model which could adapt its input layer based on the data, and automatically tune its core architecture to best fit it.
The actual class with the required methods, NeuralNetworkModel
, can be found here.
It leverages the Keras Tuner library to tune the hyper parameters.
The unit tests can be found here in the tests folder, and are scheduled to run with Travis CI.
You will need pipenv
to easily install all the required dependencies.
python3 -m pip install pipenv
PIPENV_VENV_IN_PROJECT=true pipenv install --dev
pipenv run <command> |
Description |
---|---|
pytest tests |
Run the test suite. |
flake8 autoyml |
Run the flake8 linter. |
mypy autoyml |
Run the MyPy type checker. |
.
├── autoyml # Application source code
│ ├── abstract_model.py # Definition of the model interface
│ ├── decorators.py # Decorator checking that the model can predict
│ ├── errors.py # Custom errors
│ ├── hypermodel.py # Tunable neural network model and custom Keras Tuner's `KerasHyperModel`
│ ├── neural_network_model.py # *** Actual wrapper class, implementing the required methods ***
│ ├── preprocessing.py # Collection of helper functions to manipulate the data
│ └── tuner.py # Custom `Tuner` class with cross-validation evaluation
└── tests # Application tests
└── test_autoyml.py # Unit tests