All Projects → noahfl → Sdr Densenet Pytorch

noahfl / Sdr Densenet Pytorch

Licence: bsd-3-clause
Stochastic Delta Rule implemented in Pytorch on DenseNet

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Sdr Densenet Pytorch

Btctrading
Time Series Forecast with Bitcoin value, to detect upward/down trends with Machine Learning Algorithms
Stars: ✭ 99 (-2.94%)
Mutual labels:  deep-neural-networks, machine-learning-algorithms
Awesome Deep Learning For Chinese
最全的中文版深度学习资源索引,包括论文,慕课,开源框架,数据集等等
Stars: ✭ 174 (+70.59%)
Mutual labels:  deep-neural-networks, machine-learning-algorithms
Echo
Python package containing all custom layers used in Neural Networks (Compatible with PyTorch, TensorFlow and MegEngine)
Stars: ✭ 126 (+23.53%)
Mutual labels:  deep-neural-networks, machine-learning-algorithms
Machine learning lectures
Collection of lectures and lab lectures on machine learning and deep learning. Lab practices in Python and TensorFlow.
Stars: ✭ 118 (+15.69%)
Mutual labels:  deep-neural-networks, machine-learning-algorithms
Awesome Speech Enhancement
A tutorial for Speech Enhancement researchers and practitioners. The purpose of this repo is to organize the world’s resources for speech enhancement and make them universally accessible and useful.
Stars: ✭ 257 (+151.96%)
Mutual labels:  deep-neural-networks, machine-learning-algorithms
Densenet Sdr
repo that holds code for improving on dropout using Stochastic Delta Rule
Stars: ✭ 148 (+45.1%)
Mutual labels:  deep-neural-networks, dropout
Mariana
The Cutest Deep Learning Framework which is also a wonderful Declarative Language
Stars: ✭ 151 (+48.04%)
Mutual labels:  deep-neural-networks, machine-learning-algorithms
Free Ai Resources
🚀 FREE AI Resources - 🎓 Courses, 👷 Jobs, 📝 Blogs, 🔬 AI Research, and many more - for everyone!
Stars: ✭ 192 (+88.24%)
Mutual labels:  deep-neural-networks, machine-learning-algorithms
Color Accessibility Neural Network Deeplearnjs
🍃 Using a Neural Network to improve web accessibility in JavaScript.
Stars: ✭ 230 (+125.49%)
Mutual labels:  deep-neural-networks, machine-learning-algorithms
Halite Ii
Season 2 of @twosigma's artificial intelligence programming challenge
Stars: ✭ 201 (+97.06%)
Mutual labels:  deep-neural-networks, machine-learning-algorithms
Letslearnai.github.io
Lets Learn AI
Stars: ✭ 33 (-67.65%)
Mutual labels:  deep-neural-networks, machine-learning-algorithms
Android Tensorflow Lite Example
Android TensorFlow Lite Machine Learning Example
Stars: ✭ 681 (+567.65%)
Mutual labels:  deep-neural-networks, machine-learning-algorithms
Bipropagation
Stars: ✭ 41 (-59.8%)
Mutual labels:  deep-neural-networks, machine-learning-algorithms
Pytorch Learners Tutorial
PyTorch tutorial for learners
Stars: ✭ 97 (-4.9%)
Mutual labels:  deep-neural-networks
Nni
An open source AutoML toolkit for automate machine learning lifecycle, including feature engineering, neural architecture search, model compression and hyper-parameter tuning.
Stars: ✭ 10,698 (+10388.24%)
Mutual labels:  machine-learning-algorithms
Papers Literature Ml Dl Rl Ai
Highly cited and useful papers related to machine learning, deep learning, AI, game theory, reinforcement learning
Stars: ✭ 1,341 (+1214.71%)
Mutual labels:  machine-learning-algorithms
Top Deep Learning
Top 200 deep learning Github repositories sorted by the number of stars.
Stars: ✭ 1,365 (+1238.24%)
Mutual labels:  deep-neural-networks
Grenade
Deep Learning in Haskell
Stars: ✭ 1,338 (+1211.76%)
Mutual labels:  deep-neural-networks
Machinelearning
A repo with tutorials for algorithms from scratch
Stars: ✭ 96 (-5.88%)
Mutual labels:  machine-learning-algorithms
Awesome Deep Reinforcement Learning
Curated list for Deep Reinforcement Learning (DRL): software frameworks, models, datasets, gyms, baselines...
Stars: ✭ 95 (-6.86%)
Mutual labels:  deep-neural-networks

Stochastic Delta Rule

This repository holds the code for the paper

'Dropout is a special case of the stochastic delta rule: faster and more accurate deep learning' (submitted to ICML; on arXiv)

Noah Frazier-Logue, Stephen José Hanson

Stochastic Delta Rule (SDR) is a weight update mechanism that assigns to each weight a standard deviation that changes as a function of the gradients every training iteration. At the beginning of each training iteration, the weights are re-initialized using a normal distribution bound by their standard deviations. Over the course of the training iterations and epochs, the standard deviations converge towards zero as the network becomes more sure of what the values of each of the weights should be. For a more detailed description of the method and its properties, have a look at the paper.

Results

Here is a TensorBoard instance that shows the results from the paper regarding titration of training epochs and the comparison to dropout (on DN100/CIFAR-100). We show that SDR can reach (and surpass) dropout's level of accuracy in 35 epochs as opposed to dropout's 100 epochs.

Note:

Results in this repository are more current than what are in the paper due to how often they are updated and how often the arXiv post can be replaced.

Dropout

Model type Depth C10 C100
DenseNet(k = 12) 40 6.88 27.88
DenseNet(k = 12) 100 ---- 24.41
DenseNet-BC(k = 12) 250 ---- 23.91

SDR

Model type Depth C10 C100
DenseNet(k = 12) 40 5.95 24.58
DenseNet(k = 12) 100 ---- 21.36
DenseNet-BC(k = 12) 250 ---- 19.79

Two types of Densely Connected Convolutional Networks (DenseNets) are available:

  • DenseNet - without bottleneck layers
  • DenseNet-BC - with bottleneck layers

Each model can be tested on such datasets:

  • CIFAR-10
  • CIFAR-100
  • ImageNet (results coming soon)

A number of layers, blocks, growth rate, image normalization and other training params may be changed trough shell or inside the source code.

Usage

Example run:

    python train.py --layers 40 --no-bottleneck --growth 12 --reduce 1.0 -b 100 --epochs 100 --name DN40_C100_alpha_0.25_beta_0.05_zeta_0.7 --tensorboard --sdr --dataset C100 --lr 0.25 --beta 0.52 --zeta 0.7

This run would train a 40-layer DenseNet model on CIFAR-100 and log the progress to TensorBoard. To use dropout, run something like

    python train.py --layers 40 --no-bottleneck --growth 12 --reduce 1.0 -b 100 --epochs 100 --name DN40_C100_do_0.2 --tensorboard --dataset C100 --droprate 0.2

where --droprate is the probability (in this case 20%) that a neuron is dropped during dropout.

NOTE: the --sdr argument will override the --droprate argument. For example:

    python train.py --layers 40 --no-bottleneck --growth 12 --reduce 1.0 -b 100 --epochs 100 --name DN40_C100_alpha_0.25_beta_0.02_zeta_0.7 --tensorboard --sdr --dataset C100 --lr 0.25 --beta 0.02 --zeta 0.7 --droprate 0.2

will use SDR and not dropout.

List all available options:

    python train.py --help

TensorBoard logs and steps to reproduce results

Note:

Emphasis below has been placed on test results, but training/encoding-optimized TensorBoard logs will be supplied where available. These will be updated as more results are generated.

DenseNet-40 on CIFAR-10

TensorBoard logs: Testing | Training

Command to replicate test results:

    python train.py --layers 40 --no-bottleneck --growth 12 --reduce 1.0 -b 100 --epochs 100 --name DN40_C10_alpha_0.25_beta_0.1_zeta_0.999 --tensorboard --sdr --dataset C10 --lr 0.25 --beta 0.1 --zeta 0.999

DenseNet-40 on CIFAR-100

TensorBoard logs: Testing | Training

Command to replicate test results:

    python train.py --layers 40 --no-bottleneck --growth 12 --reduce 1.0 -b 100 --epochs 100 --name DN40_C100_alpha_0.3_beta_0.2_zeta_0.9999 --tensorboard --sdr --dataset C100 --lr 0.3 --beta 0.2 --zeta 0.9999

DenseNet-100 on CIFAR-100

TensorBoard logs: Testing | Training

Command to replicate test results:

    python train.py --layers 100 --no-bottleneck --growth 12 --reduce 1.0 -b 100 --epochs 100 --name DN100_C100_alpha_0.25_beta_0.1_zeta_0.7 --tensorboard --sdr --dataset C100 --lr 0.25 --beta 0.1 --zeta 0.7

DenseNet-250 BC on CIFAR-100

TensorBoard logs: Testing | Training

Command to replicate test results:

    python train.py --layers 250 --growth 12 --reduce 1.0 -b 100 --epochs 100 --name DN250_C100_alpha_0.25_beta_0.03_zeta_0.5 --tensorboard --sdr --dataset C100 --lr 0.25 --beta 0.03 --zeta 0.5

ImageNet results will be generated and posted as soon as our institution finishes setting up our account with AWS.

The code used is based heavily on Andreas Veit's DenseNet implementation and PyTorch's Vision repository.

Dependencies

Optional

Cite

If you use DenseNets in your work, please cite the original paper as:

@article{Huang2016Densely,
  author  = {Huang, Gao and Liu, Zhuang and Weinberger, Kilian Q.},
  title   = {Densely Connected Convolutional Networks},
  journal = {arXiv preprint arXiv:1608.06993},
  year    = {2016}
}
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].