Skip to content

Revisions and implementations of modern Convolutional Neural Networks architectures in TensorFlow and Keras

License

Notifications You must be signed in to change notification settings

Nyandwi/ModernConvNets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modern Convolutional Neural Network Architectures

Render nbviewer Open In Colab

Revision of the designs and implementation of modern convolutional neural networks architectures

cnns_image

Convolutional Neural Networks (ConvNets or CNNs) are a class of neural networks that are used for visual recognition tasks.

ConvNets Architectures

On Choosing a ConvNets Architecture

Computer vision community is blessed with having many vision architectures that work great across many platforms or hardwares. But, having many options means it is not easy to choose an architecture that suits a given problem. How can you choose a CNNs architecture for your problem?

The first rule of thumb is that you should not try to design your own architecture from scratch. If you are working on generic problem, it never hurts to start with ResNet-50. If you are building a mobile-based visual application where there is limited computation resources, try MobileNets(or other mobile friendly architectures like ShuffleNetv2 or ESPNetv2).

For a better trade-off between accuracy and computation efficiency, I think EfficientNetV2 and or latest ConvNeXt can be a good fit!

That said, choosing architecture is a no free-lunch scenario. There is not a going to be a single architecture that works for all datasets and problems. It's all experimentation. It's all trying!

If you are a visionary or like to stay on the bleeding edge of the field, try vision transformers!

References Implementations

Important Notes

The implementations of ConvNets architectures contained in this repository are not optimized for training but rather to understand how those networks were designed, principal components that makes them and how they evolved overtime. LeNet-5(LeCunn, 1998) had 5 convolutional layers. AlexNet(Alex, 2012) had 9 convolutional layers. Few years later, Residual Networks(He, 2015) made the trends after showing that it's possible to train networks of over 100 layers. And in fact, residual networks are still one of the most widely used architecture across wide range of visual tasks and they impacted the design of language architectures. Computer vision research community is very vibrant. Understanding how architectures are designed is not a neccesity, but it's one of the good ways to stay on top of this fast-ever changing field!

If you want to use ConvNets for solving a visual recognition tasks such as image classification or object detection, you can get up running quickly by getting the models (and their pretrained weights) from tools like Keras, TensorFlow Hub, PyTorch Vision, Timm PyTorch Image Models, GluonCV, and OpenMML Lab.

Citation

If you find this repository helpful, I will appreciate if you cite it:

author: Jean de Dieu Nyandwi
title: ConvNets Architectures
year: 2022
publisher: GitHub
url: https://github.com/Nyandwi/convnets-architectures

For any suggestion, comment, or simply anything,you can reach out through email, Twitter or LinkedIn.


Twitter Follow

Releases

No releases published

Packages

No packages published