Giter Site home page Giter Site logo

aromorin / dnnop Goto Github PK

View Code? Open in Web Editor NEW
11.0 3.0 1.0 93.15 MB

Deep Neural Network Optimization Platform with Gradient-based, Gradient-Free Algorithms

Home Page: https://www.researchgate.net/profile/Ahmed_Aly13

License: MIT License

Python 100.00%
optimization-algorithms algorithms deep-learning deep-neural-networks robotics computer-vision artificial-intelligence artificial-neural-networks gradient-free-optimization neuroevolution

dnnop's Introduction

DNN Optimization Platform

A repo containing the implementation of algorithms that are developed to train deep neural networks. The are three main Packages:

  • The Backend
  • The Environments
  • The Solving Scripts

Backend

The backend has 3 main packages:

  • Algorithms
  • Models
  • Solvers

Algorithms

This is a repository of different algorithms all developed to train DNNs. The algorithms split into gradient-based and gradient-free algorithms. The gradient-free branch further splits into multi-candidate and single-candidate algorithms.

In addition, there are some "experimental" algorithms featuring biological neural mechanisms such as fire-and-wire.

In the grad-based algos you will have the trustworthy and infamous Stochastic Gradient Descent (SGD), and you can incorporate its variants, e.g. ADAM, as well easily using PyTorch libraries.

In the grad-free multi-candidate algos you will have MSN (Multiple Search Neuroevolution).

In the grad-free single-candidate algos you have the Local Search and Random Search.

Models

This is a model bank that contains several implementations of Convolutional and Fully-Connected architectures. There are also some "experimental" models that mimic biological neurons with memory augmentation. Feel free to add your own models.

Solvers

Depending on the sort of environment/problem you're solving, you're more than likely going to need a loop to solve it. In this package, you will find RL solver loops for Reinforcement Learning tasks, and Dataset solvers for Image Classification Computer Vision tasks. You can come up with your own solving loops and add them here. You can probably make use of the interrogator/evalutor mechanisms provided.

The Environment

The repo features environments such as Atari and Global Optimization Function Solver in the "environments" package. The different environments represent different tasks that you can try to solve.

For your own tasks, frame your problem as an "environment" and add it here. Don't forget to add it to the Class Factory as well so that you can call it through a solving script.

Solving Scripts

These scripts draw from the previous packages 4 elements:

  • A model: A neural network that will be trained (i.e. optimize its parameters) to solve the task
  • An Algorithm: to optimize the params of the model (i.e. train the DNN)
  • An Environment: the task which we will try to solve
  • A Solver: a unit that takes the Algorithm and the Environment objects and orchestrates the optimization process.

Semantics

In this repository, we use "trunk-based" development. This basically defines that updates are always incremental and continuous. Features are integrated constantly into the repo, rather than in batches.

In addition, the scripts are formatted using YAPF following Google style. They are always lint checked using pylint, as well. Naming conventions for Python should be followed, within reason.

dnnop's People

Contributors

aromorin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

skn123

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.