ddlee-cn / awesome_cnn

A collection of CNN structures, contains PyTorch Implementation and Netscope Visualization.
Apache License 2.0
39 stars 14 forks source link
artificial-intelligence cnn cnn-network computer-vision deep-learning neural-network

Awesome CNNs

This repo contains a collection of CNN network structures.

For each kind of CNN network, we provide a pytorch implementation, a caffe implementation for NetScope visualization, and additional pictures(mostly from original paper) to help you understand how it works. Links to original paper and my notes(in Chinese) are also provided.

Furthermore, in experiments folder, there is a training script for you to train each kind of network with Pytorch on dataset CIFAR-10.

Usage

1.Clone this repo.

git clone https://github.com/ddlee96/awesome_cnn.git

2.Install PyTorch and TorchVision following instructions on PyTorch website.

(Optional)Install dependencies using pipenv:

pip install pipenv
cd awesome_cnn
pipenv install

pipenv will install dependencies based on Pipfile. You can also modify this Pipfile to match your environment.

3.Prepare dataset

cd awesome_cnn
mkdir data

Then just run python experiments/experiment.py --data cifar, it will create data/cifar/ and download cifar-10 dataset for you.

(Optional)You can also use dataset MNIST and [Fashion-MNIST](), it requires Pillow package. Install it using pip install Pillow.

4.Start Training

python experiments/experiment.py --model resnet50 --data cifar --batch_size 182 --gpus 0,1,2,3

It will train model ResNet50 on cifar10 with batch size 128. More options can be find in experiment.py.

CNN Network List

Network Name PaperNotes Paper Netscope Proposed Date
MobileNets MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications arxiv - 17.04
ResNeXt Aggregated Residual Transformations for Deep Neural Networks arxiv Visualization 16.11
Xception Xception: Deep Learning with Depthwise Seperable Convolutions arxiv Visualization 16.10
DenseNet Densely Connected Convolutional Networks arxiv Visualization 16.08
ResNet-v2 Identity Mappings in Deep Residual Networks arxiv - 16.03
Inception-ResNet Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning arxiv Visualization 16.02
SqueezeNet SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size arxiv - 16.02
Inception-v3 Rethinking the Inception Architecture for Computer Vision arxiv Visualization 15.12
ResNet Deep Residual Learning for Image Recognition arxiv Visualization 15.12
GoogLeNet Going deeper with convolutions arxiv Visualization 14.09
VGG Very Deep Convolutional Networks for Large-Scale Image Recognition arxiv Visualization 14.09
AlexNet ImageNet Classification with Deep ConvolutionalNeural Networks NIPS Visualization -
LeNet Gradient-based learning applied to document recognition Lecun's Homepage - 1998

To be added