![alt text](docs/source/dragon_logo.png)
[![Documentation Status](https://readthedocs.org/projects/dragon-tutorial/badge/?version=latest)](https://dragon-tutorial.readthedocs.io/en/latest/?badge=latest)
[![GitHub latest commit](https://badgen.net/github/last-commit/JulieKeisler/dragon/)](https://github.com/JulieKeisler/dragon/commit/)
![Maintainer](https://img.shields.io/badge/maintainer-J.Keisler-blue)
**DRAGON**, for **DiRected Acyclic Graphs OptimizatioN**, is an open source Python package for the optimization of *Deep Neural Networks Hyperparameters and Architecture* [[1]](#1).
**DRAGON** is not a *no code* package, but you can get familiar with it quickly thanks to the [Documentation](https://dragon-tutorial.readthedocs.io/en/latest/index.html).
Key Features
------------
- A flexible seach space
- The search space based on Directed Acyclic Graphs (DAGs) where the nodes can be any **PyTorch** layer (custom or not) and the edges are the connections between them.
- The code to implement the DAGs-based search space was inspired by the [zellij](https://zellij.readthedocs.io/en/latest/) package developed for hyperparameters optimization.
- **DRAGON** search space includes cell-based search spaces [4]_.
- Flexible optimization algorithms
- The search algorithms defined in **DRAGON** are based on search operators used to modify elements of the search space (e.g., mutations, neighborhoods, crossover), which can be used to develop new search algorithms.
- Efficient algorithms are also implemented in **DRAGON** such as the Random Search, Evolutionary Algorithm, Mutant UCB, and HyperBand.
- Applications to various tasks
- The flexibility of **DRAGON** makes it usable for various applications.
- For example: image classification, time series forecasting, electricity consumption forecasting, wind power forecasting or tabular data.
- Easy parallelization over multiple GPUs
- The distributed version requires a MPI library, such as [MPICH](https://www.mpich.org/) or [Open MPI](https://www.open-mpi.org/) and is based on [mpi4py](https://mpi4py.readthedocs.io/en/stable/intro.html#what-is-mpi).
Basic Concepts
------------
- The **Search Space** is a mix-variable search space. Numerical, categorical and graph objects may be jointly optimized. Each object is associated with a **variable**, which defines what values an object can take.
- Base on this search space, several **Search Operators** are defined, showing how the objects can be manipulate to find the neighboring values.
Install DRAGON
--------------
**Basic version**
After cloning the git repository, install **DRAGON**, using:
pip install dragon-autodl==1.0
**Distributed version**
If you plan on using the distributed version, you have to install the mpi4py package:
pip install mpi4py
or
pip install dragon-autodl[mpi]
**Documentation**
Additional dependencies are required to run the documentation notebooks:
pip install dragon-autodl[docs]
Dependencies
------------
* **Python** >=3.9
* [numpy](https://numpy.org/)<2.0.0
* [torch](https://pytorch.org/)
* [graphviz](https://graphviz.org/)
* [pandas](https://pandas.pydata.org/)
* [mpi]:
* [mpi4py](https://mpi4py.readthedocs.io/en/stable/)
* [docs]:
* [openml](https://www.openml.org/)
* [sklearn](https://scikit-learn.org)
* [optuna](https://optuna.org/)
* [matplotlib](https://matplotlib.org/)
* [skorch](https://skorch.readthedocs.io/en/stable/)
## Contributors ##
### Design
* Julie Keisler: julie.keisler.rfo@gmail.com
## References ##
<a id="1">[1]</a>
Keisler, J., Talbi, E. G., Claudel, S., & Cabriel, G. (2024). An algorithmic framework for the optimization of deep neural networks architectures and hyperparameters. Journal of Machine Learning Research.
Raw data
{
"_id": null,
"home_page": "https://github.com/JulieKeisler/DRAGON",
"name": "dragon-autodl",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "deep learning, neural networks, automl, neural architecture search, hyperparameters optimization, metaheuristics",
"author": "Julie Keisler",
"author_email": "julie.keisler.rfo@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/6d/c2/e1a98a3f8c0a9eeabe6084c4b8255ad993723f822bb56f0aeca665a64298/dragon_autodl-1.1.tar.gz",
"platform": null,
"description": "![alt text](docs/source/dragon_logo.png)\n\n[![Documentation Status](https://readthedocs.org/projects/dragon-tutorial/badge/?version=latest)](https://dragon-tutorial.readthedocs.io/en/latest/?badge=latest)\n[![GitHub latest commit](https://badgen.net/github/last-commit/JulieKeisler/dragon/)](https://github.com/JulieKeisler/dragon/commit/)\n![Maintainer](https://img.shields.io/badge/maintainer-J.Keisler-blue)\n\n\n**DRAGON**, for **DiRected Acyclic Graphs OptimizatioN**, is an open source Python package for the optimization of *Deep Neural Networks Hyperparameters and Architecture* [[1]](#1). \n**DRAGON** is not a *no code* package, but you can get familiar with it quickly thanks to the [Documentation](https://dragon-tutorial.readthedocs.io/en/latest/index.html). \n\nKey Features\n------------\n\n- A flexible seach space\n - The search space based on Directed Acyclic Graphs (DAGs) where the nodes can be any **PyTorch** layer (custom or not) and the edges are the connections between them. \n - The code to implement the DAGs-based search space was inspired by the [zellij](https://zellij.readthedocs.io/en/latest/) package developed for hyperparameters optimization. \n - **DRAGON** search space includes cell-based search spaces [4]_.\n \n- Flexible optimization algorithms\n - The search algorithms defined in **DRAGON** are based on search operators used to modify elements of the search space (e.g., mutations, neighborhoods, crossover), which can be used to develop new search algorithms.\n - Efficient algorithms are also implemented in **DRAGON** such as the Random Search, Evolutionary Algorithm, Mutant UCB, and HyperBand.\n\n- Applications to various tasks\n - The flexibility of **DRAGON** makes it usable for various applications.\n - For example: image classification, time series forecasting, electricity consumption forecasting, wind power forecasting or tabular data.\n\n- Easy parallelization over multiple GPUs\n - The distributed version requires a MPI library, such as [MPICH](https://www.mpich.org/) or [Open MPI](https://www.open-mpi.org/) and is based on [mpi4py](https://mpi4py.readthedocs.io/en/stable/intro.html#what-is-mpi).\n\nBasic Concepts\n------------\n\n- The **Search Space** is a mix-variable search space. Numerical, categorical and graph objects may be jointly optimized. Each object is associated with a **variable**, which defines what values an object can take.\n- Base on this search space, several **Search Operators** are defined, showing how the objects can be manipulate to find the neighboring values.\n\nInstall DRAGON\n--------------\n\n**Basic version**\n\nAfter cloning the git repository, install **DRAGON**, using:\n\n pip install dragon-autodl==1.0\n\n**Distributed version**\n\nIf you plan on using the distributed version, you have to install the mpi4py package:\n\n pip install mpi4py\n\nor \n\n pip install dragon-autodl[mpi]\n\n**Documentation**\n\nAdditional dependencies are required to run the documentation notebooks:\n\n pip install dragon-autodl[docs]\n\nDependencies\n------------\n\n* **Python** >=3.9\n* [numpy](https://numpy.org/)<2.0.0\n* [torch](https://pytorch.org/)\n* [graphviz](https://graphviz.org/)\n* [pandas](https://pandas.pydata.org/)\n* [mpi]: \n * [mpi4py](https://mpi4py.readthedocs.io/en/stable/)\n* [docs]: \n * [openml](https://www.openml.org/)\n * [sklearn](https://scikit-learn.org)\n * [optuna](https://optuna.org/)\n * [matplotlib](https://matplotlib.org/)\n * [skorch](https://skorch.readthedocs.io/en/stable/)\n\n## Contributors ##\n### Design\n* Julie Keisler: julie.keisler.rfo@gmail.com\n \n## References ##\n<a id=\"1\">[1]</a>\nKeisler, J., Talbi, E. G., Claudel, S., & Cabriel, G. (2024). An algorithmic framework for the optimization of deep neural networks architectures and hyperparameters. Journal of Machine Learning Research.\n\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Implementation of the algorithmic framework from <An algorithmic framework for the optimization of deep neural networks architectures and hyperparameters>",
"version": "1.1",
"project_urls": {
"Bug Tracker": "https://github.com/JulieKeisler/DRAGON/issues",
"Homepage": "https://github.com/JulieKeisler/DRAGON"
},
"split_keywords": [
"deep learning",
" neural networks",
" automl",
" neural architecture search",
" hyperparameters optimization",
" metaheuristics"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cca897e84261fc5fd59e2e34b3de5d6d1935e0f5e11b99d56c12045066cffec2",
"md5": "4a2da4266c2c3bdb9e37f4f30d616161",
"sha256": "15251dbbdc2a13608cd9476e50e931210e95ea1ef9e7796f7055e44297789035"
},
"downloads": -1,
"filename": "dragon_autodl-1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4a2da4266c2c3bdb9e37f4f30d616161",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 65189,
"upload_time": "2024-12-02T17:46:57",
"upload_time_iso_8601": "2024-12-02T17:46:57.702404Z",
"url": "https://files.pythonhosted.org/packages/cc/a8/97e84261fc5fd59e2e34b3de5d6d1935e0f5e11b99d56c12045066cffec2/dragon_autodl-1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6dc2e1a98a3f8c0a9eeabe6084c4b8255ad993723f822bb56f0aeca665a64298",
"md5": "46010b33dd5545a913b478a4cda1ffd8",
"sha256": "7f4a6493f7d0cc9d51e8e91b41eb979a014e1e2e52b4473a078003b3742da9c9"
},
"downloads": -1,
"filename": "dragon_autodl-1.1.tar.gz",
"has_sig": false,
"md5_digest": "46010b33dd5545a913b478a4cda1ffd8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 55598,
"upload_time": "2024-12-02T17:46:58",
"upload_time_iso_8601": "2024-12-02T17:46:58.994172Z",
"url": "https://files.pythonhosted.org/packages/6d/c2/e1a98a3f8c0a9eeabe6084c4b8255ad993723f822bb56f0aeca665a64298/dragon_autodl-1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-02 17:46:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "JulieKeisler",
"github_project": "DRAGON",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "dragon-autodl"
}