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.
Evolly allows you to:
- Boost metrics of your deep learning model by tuning backbone architecture
- 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.
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
To launch evolution with Evolly:
- 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
- Follow Making your first evolution guide.
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 |
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
- EvoPose2D: genotype storing approach and MobileNetV2 block implementation
- Inception_ResNet_v2 block implementation
- ResNet block implementation
Contact us if you are interested in collaborating or ready to invest in us: revisorteam@pm.me