dragon-autodl


Namedragon-autodl JSON
Version 1.1 PyPI version JSON
download
home_pagehttps://github.com/JulieKeisler/DRAGON
SummaryImplementation of the algorithmic framework from <An algorithmic framework for the optimization of deep neural networks architectures and hyperparameters>
upload_time2024-12-02 17:46:58
maintainerNone
docs_urlNone
authorJulie Keisler
requires_python>=3.9
licenseNone
keywords deep learning neural networks automl neural architecture search hyperparameters optimization metaheuristics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![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"
}
        
Elapsed time: 0.59523s