Skip to content

ducha-aiki/LSUVinit

Repository files navigation

Layer-sequential unit-variance (LSUV) initialization

This is sample code for LSUV and Orthonormal initializations, implemented in python script within Caffe framework. The original Caffe README is reproduced below the line. LSUV initialization is described in:

Mishkin, D. and Matas, J.,(2015). All you need is a good init. arXiv preprint arXiv:1511.06422.

Orthonormal initialization is described in:

Andrew M. Saxe, James L. McClelland, Surya Ganguli (2013). Exact solutions to the nonlinear dynamics of learning in deep linear neural networks. arXiv preprint arXiv:1312.6120

upd.: Torch re-implementation https://github.com/yobibyte/torch-lsuv

upd.: Keras re-implementation https://github.com/ducha-aiki/LSUV-keras

New! PyTorch re-implementation https://github.com/ducha-aiki/LSUV-pytorch

New! Thinc re-implementation LSUV-thinc

update: Why it is important to scale your input to var=1 before applying LSUV:

scale-no-scale

Examples

See examples and sample log outputs in examples/lsuv. Run get_datasets.sh and training_*.sh for experiments reproduction. Note, than we haven`t freezed random seed and results may vary a little from run to run. Initialization script itself is in tools/extra/lsuv_init.py

Using with you current Caffe, or different framework installation

If you have Caffe installed already, you can simply copy script from tools/extra/lsuv_init.py and view its help (python lsuv_init.py -help) for further instructions. If you use a different framework, please, adapt that same script to your needs and notify us once you've got the code working, so we could let others know of existance of your solution if you're not against sharing your code. The script is self-explanatory, readable and adaptable.

Citation

Please cite us if you use this code:

@ARTICLE{LSUVInit2015,
author = {{Mishkin}, D. and {Matas}, J.},
title = "{All you need is a good init}",
journal = {arXiv preprint arXiv:1511.06422},
year = 2015,
month = nov
}

Caffe

Build Status License

Caffe is a deep learning framework made with expression, speed, and modularity in mind. It is developed by the Berkeley Vision and Learning Center (BVLC) and community contributors.

Check out the project site for all the details like

and step-by-step examples.

Join the chat at https://gitter.im/BVLC/caffe

Please join the caffe-users group or gitter chat to ask questions and talk about methods and models. Framework development discussions and thorough bug reports are collected on Issues.

Happy brewing!

License and Citation

Caffe is released under the BSD 2-Clause license. The BVLC reference models are released for unrestricted use.

Please cite Caffe in your publications if it helps your research:

@article{jia2014caffe,
  Author = {Jia, Yangqing and Shelhamer, Evan and Donahue, Jeff and Karayev, Sergey and Long, Jonathan and Girshick, Ross and Guadarrama, Sergio and Darrell, Trevor},
  Journal = {arXiv preprint arXiv:1408.5093},
  Title = {Caffe: Convolutional Architecture for Fast Feature Embedding},
  Year = {2014}
}