Skip to content
Deep Learning Library (DLL) for C++ (ANNs, CNNs, RBMs, DBNs...)
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Catch @ 785db43 Get Catch for testing Jul 12, 2014
cifar-10 @ ad30996 Update cifar-10 reader Jun 5, 2017
etl @ 6cd15d3 Update ETL (BLAS improvements) Apr 30, 2018
examples/src New example with DBN Feb 5, 2018
include/dll Update processor Mar 9, 2018
make-utils @ 12c4d5a Update make-utils Feb 5, 2018
mnist @ ec0e2ee Review MNIST support Jul 20, 2017
nice_svm @ 0f0bd35 Update nice_svm Jan 27, 2015
processor Let the processor compile in C++17 Mar 9, 2018
test Add multilayer regression tests Jan 9, 2018
tools Save script for compiler benchmark Apr 5, 2017
view/src Finalization of renaming Sep 8, 2017
workbench/src Fixes for workbench Oct 3, 2017
.clang-format Add format file Oct 15, 2015
.color_coded Vim configuration Jul 1, 2015
.gitignore Add test files Aug 10, 2016
.gitmodules Integrate cifar-10 submodule Apr 4, 2017
.ycm_extra_conf.py Vim configuration Jul 1, 2015
AUTHORS Add authors file Nov 11, 2014
ChangeLog.rst Update Changelog Nov 27, 2017
Doxyfile Bump version number Oct 6, 2017
Jenkinsfile Fix jenkinsfile compiler Nov 20, 2017
LICENSE Update license Jul 17, 2015
Makefile New example with DBN Feb 5, 2018
README.rst Add note in the Readme for CUDA Oct 11, 2017
compile_commands.json Update compilation database Oct 15, 2015
logo.png Add logos Mar 8, 2017
logo_small.png Bigger small logo Mar 8, 2017
sonar-project.properties Bump version number Oct 6, 2017
tests.mk Improve test generation Oct 7, 2015

README.rst

Deep Learning Library (DLL) 1.1

logo coverage jenkins license

DLL is a library that aims to provide a C++ implementation of Restricted Boltzmann Machine (RBM) and Deep Belief Network (DBN) and their convolution versions as well. It also has support for some more standard neural networks.

Features

  • Restricted Boltzmann Machine
    • Various units: Stochastic binary, Gaussian, Softmax and nRLU units
    • Contrastive Divergence and Persistence Contrastive Divergence
      • CD-1 learning by default
    • Momentum
    • Weight decay
    • Sparsity target
    • Train as Denoising autoencoder
  • Convolutional Restricted Boltzmann Machine
    • Standard version
    • Version with Probabilistic Max Pooling (Honglak Lee)
    • Binary and Gaussian visible units
    • Binary and ReLU hidden units for the standard version
    • Binary hidden units for the Probabilistic Max Pooling version
    • Training with CD-k or PCD-k (only for standard version)
    • Momentum, Weight Decay, Sparsity Target
    • Train as Denoising autoencoder
  • Deep Belief Network
    • Pretraining with RBMs
    • Fine tuning with Conjugate Gradient
    • Fine tuning with Stochastic Gradient Descent
    • Classification with SVM (libsvm)
  • Convolutional Deep Belief Network
    • Pretraining with CRBMs
    • Classification with SVM (libsvm)
  • Input data
    • Input data can be either in containers or in iterators
      • Even if iterators are supported for SVM classifier, libsvm will move all the data in memory structure.

Building

Note: When you clone the library, you need to clone the sub modules as well, using the --recursive option.

The folder include must be included with the -I option, as well as the etl/include folder.

This library is completely header-only, there is no need to build it.

However, this library makes extensive use of C++11 and C++14, therefore, a recent compiler is necessary to use it. This library has been tested on clang 3.9, clang 4.0, g++ 6.3.0 and g++ 7.1. If for some reasons, it should not work on one of the supported compilers, contact me and I'll fix it.

This has never been tested on Windows. While it should compile on Mingw, I don't expect Visual Studio to be able to compile it for now, although VS 2017 sounds promising. If you have problems compiling this library, I'd be glad to help, but cannot guarantee that this will work on other compilers.

If you want to use GPU, you should use CUDA 8.0 or superior and CUDNN 5.0.1 or superior. I haven't tried other versions, but lower versions of CUDA, such as 7, should work, and higher versions as well. If you got issues with different versions of CUDA and CUDNN, please open an issue on Github.

License

This library is distributed under the terms of the MIT license, see LICENSE file for details.

You can’t perform that action at this time.