Skip to main content

Implementation of the algorithmic framework from <An algorithmic framework for the optimization of deep neural networks architectures and hyperparameters>

Project description

alt text

Documentation Status GitHub latest commit Maintainer

DRAGON, for DiRected Acyclic Graphs OptimizatioN, is an open source Python package for the optimization of Deep Neural Networks Hyperparameters and Architecture [1]. DRAGON is not a no code package, but you can get familiar with it quickly thanks to the Documentation.

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 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 or Open MPI and is based on mpi4py.

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

Contributors

Design

References

[1] 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dragon_autodl-1.1.tar.gz (55.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dragon_autodl-1.1-py3-none-any.whl (65.2 kB view details)

Uploaded Python 3

File details

Details for the file dragon_autodl-1.1.tar.gz.

File metadata

  • Download URL: dragon_autodl-1.1.tar.gz
  • Upload date:
  • Size: 55.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.15

File hashes

Hashes for dragon_autodl-1.1.tar.gz
Algorithm Hash digest
SHA256 7f4a6493f7d0cc9d51e8e91b41eb979a014e1e2e52b4473a078003b3742da9c9
MD5 46010b33dd5545a913b478a4cda1ffd8
BLAKE2b-256 6dc2e1a98a3f8c0a9eeabe6084c4b8255ad993723f822bb56f0aeca665a64298

See more details on using hashes here.

File details

Details for the file dragon_autodl-1.1-py3-none-any.whl.

File metadata

  • Download URL: dragon_autodl-1.1-py3-none-any.whl
  • Upload date:
  • Size: 65.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.15

File hashes

Hashes for dragon_autodl-1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 15251dbbdc2a13608cd9476e50e931210e95ea1ef9e7796f7055e44297789035
MD5 4a2da4266c2c3bdb9e37f4f30d616161
BLAKE2b-256 cca897e84261fc5fd59e2e34b3de5d6d1935e0f5e11b99d56c12045066cffec2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page