dragon-autodl


Namedragon-autodl JSON
Version 1.0 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-09-30 07:32:37
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 -e dragon

**Distributed version**

If you plan on using the distributed version, you have to install the mpi4py package:

     pip install mpi4py

**Documentation**

Additional dependencies are required to run the documentation notebooks:

     pip install -e dragon[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/0c/d1/3e5df4a6644a7bc07c452519db3c7ccf3bc6f72a9f8e77ed0217b632ceb3/dragon_autodl-1.0.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 -e dragon\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\n**Documentation**\n\nAdditional dependencies are required to run the documentation notebooks:\n\n     pip install -e dragon[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.0",
    "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": "eb21e5552863e2117a8c3bbc02822bedd8ad6333fbc9c3e407cd54bc49f09b34",
                "md5": "565987434d217ef14d6bb99dae5afb27",
                "sha256": "441521a7ddbbd92995d8f1e391c20571528179b60e8ce69871ea822044c3f4a7"
            },
            "downloads": -1,
            "filename": "dragon_autodl-1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "565987434d217ef14d6bb99dae5afb27",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 57178,
            "upload_time": "2024-09-30T07:32:35",
            "upload_time_iso_8601": "2024-09-30T07:32:35.653031Z",
            "url": "https://files.pythonhosted.org/packages/eb/21/e5552863e2117a8c3bbc02822bedd8ad6333fbc9c3e407cd54bc49f09b34/dragon_autodl-1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0cd13e5df4a6644a7bc07c452519db3c7ccf3bc6f72a9f8e77ed0217b632ceb3",
                "md5": "d538b5d24f8f377fe9104a192c022d01",
                "sha256": "0254ed6a18aa1361662fdcea7d26ec9d4f6bc32cf74a56d2a254f68a1d62087d"
            },
            "downloads": -1,
            "filename": "dragon_autodl-1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "d538b5d24f8f377fe9104a192c022d01",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 49945,
            "upload_time": "2024-09-30T07:32:37",
            "upload_time_iso_8601": "2024-09-30T07:32:37.484655Z",
            "url": "https://files.pythonhosted.org/packages/0c/d1/3e5df4a6644a7bc07c452519db3c7ccf3bc6f72a9f8e77ed0217b632ceb3/dragon_autodl-1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-30 07:32:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "JulieKeisler",
    "github_project": "DRAGON",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "dragon-autodl"
}
        
Elapsed time: 0.83938s