Skip to content

Evolutionary Neural Architecture Search framework that improves performance of your DL models

License

Notifications You must be signed in to change notification settings

RevisorTeam/evolly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Evolly logo

Evolly is an evolutionary neural architecture search framework designed to make running evolution as flexible as possible.

Learn details of the Evolly's pipeline in our Medium post.

What does Evolly do?

Evolly allows you to:

  1. Boost metrics of your deep learning model by tuning backbone architecture
  2. Search for new backbone architectures by finding optimal types, order of the blocks and optimizing block parameters (kernel sizes, strides, filters and dropouts).

You can apply it with to any Deep Learning task: classification, detection, segmentation, pose estimation, GAN, etc.

Evolution visualization

Features

We've added following features to make it possible to implement Evolly in any training pipeline:

  • Build models using common DL frameworks (tensorflow, torch)
  • Set multiple branches (stems) of different data types
  • Define custom backbone depth and width
  • Pass custom architecture blocks
  • Choose parameters to mutate
  • Customize allowed values and intervals of the mutations
  • Run training in distributed or parallel mode
  • Monitor evolution via TensorBoard
  • Estimate search space size
  • Visualize evolution

Evolution visualization

Getting started

To launch evolution with Evolly:

  1. Install Evolly via pip: pip install evolly[tensorflow,torch]. If tensorflow (>=2.3) and torch (>=1.9.0) have already been installed, you can install Evolly using: pip install evolly
  2. Follow Making your first evolution guide.

Usage examples

Link Features Task Complexity Framework Data
#1 Simple Tensorflow training, backbone tuning Classification Easy Tensorflow Images
#2 Simple PyTorch training, backbone search Classification Easy PyTorch Images
#3 Custom training pipeline and losses, mixed precision, parallel and distributed training support, TPUs support, backbone search with weight transfer Image retrieval Advanced Tensorflow Images
#4 PyTorch training, custom augmentations (albumentations), backbone search Object detection Medium PyTorch Images

Improvements

We are open to any help. Check out our ideas here to learn how we can upgrade Evolly together:

  • Test default PyTorch blocks
  • Add more usage examples
  • Add new data types
  • Add new default blocks
  • Custom parameters to mutate
  • Utilize mutation rate and add mutation probabilities
  • Implement reinforcement learning
  • Upgrade branch connections
  • Implement ability to build multiple branches with torch
  • Ability to search for block architectures

References

Contacts

Contact us if you are interested in collaborating or ready to invest in us: revisorteam@pm.me

About

Evolutionary Neural Architecture Search framework that improves performance of your DL models

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages