All Projects → xingyul → Sparse Winograd Cnn

xingyul / Sparse Winograd Cnn

Licence: mit
Efficient Sparse-Winograd Convolutional Neural Networks (ICLR 2018)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Sparse Winograd Cnn

Numpycnn
Building Convolutional Neural Networks From Scratch using NumPy
Stars: ✭ 436 (+179.49%)
Mutual labels:  convolutional-neural-networks, convolution
Yann
This toolbox is support material for the book on CNN (http://www.convolution.network).
Stars: ✭ 41 (-73.72%)
Mutual labels:  convolutional-neural-networks, convolution
Pynq Dl
Xilinx Deep Learning IP
Stars: ✭ 84 (-46.15%)
Mutual labels:  convolutional-neural-networks, convolution
Shainet
SHAInet - a pure Crystal machine learning library
Stars: ✭ 143 (-8.33%)
Mutual labels:  convolutional-neural-networks
Voicemap
Identifying people from small audio fragments
Stars: ✭ 144 (-7.69%)
Mutual labels:  convolutional-neural-networks
Tfvos
Semi-Supervised Video Object Segmentation (VOS) with Tensorflow. Includes implementation of *MaskRNN: Instance Level Video Object Segmentation (NIPS 2017)* as part of the NIPS Paper Implementation Challenge.
Stars: ✭ 151 (-3.21%)
Mutual labels:  convolutional-neural-networks
Deep Viz Keras
Implementations of some popular Saliency Maps in Keras
Stars: ✭ 154 (-1.28%)
Mutual labels:  convolutional-neural-networks
Cnn Quantization
Quantization of Convolutional Neural networks.
Stars: ✭ 141 (-9.62%)
Mutual labels:  convolutional-neural-networks
Compactcnncascade
A binary library for very fast face detection using compact CNNs.
Stars: ✭ 152 (-2.56%)
Mutual labels:  convolutional-neural-networks
Models Comparison.pytorch
Code for the paper Benchmark Analysis of Representative Deep Neural Network Architectures
Stars: ✭ 148 (-5.13%)
Mutual labels:  convolutional-neural-networks
Turkce Yapay Zeka Kaynaklari
Türkiye'de yapılan derin öğrenme (deep learning) ve makine öğrenmesi (machine learning) çalışmalarının derlendiği sayfa.
Stars: ✭ 1,900 (+1117.95%)
Mutual labels:  convolutional-neural-networks
Binary Face Alignment
Real time face alignment
Stars: ✭ 145 (-7.05%)
Mutual labels:  convolutional-neural-networks
Regnet
Nonrigid image registration using multi-scale 3D convolutional neural networks
Stars: ✭ 151 (-3.21%)
Mutual labels:  convolutional-neural-networks
Livianet
This repository contains the code of LiviaNET, a 3D fully convolutional neural network that was employed in our work: "3D fully convolutional networks for subcortical segmentation in MRI: A large-scale study"
Stars: ✭ 143 (-8.33%)
Mutual labels:  convolutional-neural-networks
Timeception
Timeception for Complex Action Recognition, CVPR 2019 (Oral Presentation)
Stars: ✭ 153 (-1.92%)
Mutual labels:  convolutional-neural-networks
Attribute Aware Attention
[ACM MM 2018] Attribute-Aware Attention Model for Fine-grained Representation Learning
Stars: ✭ 143 (-8.33%)
Mutual labels:  convolutional-neural-networks
Mimick
Code for Mimicking Word Embeddings using Subword RNNs (EMNLP 2017)
Stars: ✭ 152 (-2.56%)
Mutual labels:  convolutional-neural-networks
Self Driving Golf Cart
Be Driven 🚘
Stars: ✭ 147 (-5.77%)
Mutual labels:  convolutional-neural-networks
Fast Neural Style Pytorch
Fast Neural Style Transfer implementation in PyTorch 🎨 🎨 🎨
Stars: ✭ 146 (-6.41%)
Mutual labels:  convolutional-neural-networks
Pyeco
python implementation of efficient convolution operators for tracking
Stars: ✭ 150 (-3.85%)
Mutual labels:  convolution

Efficient Sparse-Winograd Convolutional Neural Networks

This is the code and models for paper Efficient Sparse-Winograd Convolutional Neural Networks by Xingyu Liu et al.

architecture

Introduction

This work is based on our ICLR 2018 paper. We propose modifications to Winograd-based CNN architecture to enable operation savings from Winograd’s minimal filtering algorithm and network pruning to be combined.

Convolutional Neural Networks (CNNs) are computationally intensive, which limits their application on mobile devices. Their energy is dominated by the number of multiplies needed to perform the convolutions. Winograd’s minimal filtering algorithm and network pruning can reduce the operation count, but these two methods cannot be straightforwardly combined — applying the Winograd transform fills in the sparsity in both the weights and the activations. We propose two modifications to Winograd-based CNNs to enable these methods to exploit sparsity.

In this repository, we release code and data for training Winograd-ReLU CNN on ImageNet as well as pre-trained and iteratively pruned Winograd-ReLU models.

Citation

If you find our work useful in your research, please cite:

@article{liu:2018:Winograd,
  title={Efficient Sparse-Winograd Convolutional Neural Networks},
  author={Xingyu Liu and Jeff Pool and Song Han and William J. Dally},
  journal={International Conference on Learning Representations (ICLR)},
  year={2018}
}

Installation

Install TensorFlow and Tensorpack. The code has been tested with Python 2.7, TensorFlow 1.3.0, CUDA 8.0 and cuDNN 5.1 on Ubuntu 14.04.

Users may also need to download raw ImageNet dataset for ImageNet experiments. Users should ensure that the Tensorpack ResNet example can run with ImageNet.

Install customized Tensorflow Op:

cd /path/to/Sparse-Winograd-CNN/winograd2x2_cublas
make
export PYTHONPATH=/path/to/Sparse-Winograd-CNN/winograd2x2_cublas:$PYTHONPATH

Users may also change the -arch flag in winograd2x2_cublas/winograd2x2_imTrans/Makefile and winograd2x2_cublas/winograd2x2_conv/Makefile to suit their GPU computing capability.

Put ResNet-18-var/winograd_conv.py and ResNet-18-var/winograd_imtrans.py into the cloned tensorpack/models directory.

Usage

To train the Winograd-ReLU CNN from scratch on ImageNet with GPU 0 and 1:

./imagenet-resnet-transWino-prune.py --gpu 0,1 --data /path/to/dataset/imagenet

To use pre-trained model or test with pruned model, download the models. Then run with command:

./imagenet-resnet-transWino-prune.py --gpu 0,1 --data /path/to/dataset/imagenet --load /path/to/model-name.data-00000-of-00001

We also provided scripts for pruning, retraining and viewing the model: ResNet-18-var/prune_sh.sh, retrain_sh.sh and view_sh.sh.

License

Our code is released under MIT License (see LICENSE file for details).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].