Create deep architectures in the R programming language
Switch branches/tags
Clone or download
saviola777 Release of version 0.13.0
- change maintainer
- bump version
- integrate RcppParallel
- move most matrix operations implemented in C++ to parallel execution
(close #18)
- small fixes and refactoring
Latest commit 721d2e0 May 5, 2018

Downloads from the RStudio CRAN mirror


Create deep architectures in the R programming language


The previous stable version of darch (0.12.0) can be installed from CRAN using


When using devtools, the latest git version (identifiable by a version number ending in something greater than or equal to 9000 and by the fact that it is regularly broken) can be installed using


or, if you want the latest stable version (0.13.0),


Then, use ?darch to view its documentation or example("darch") to view some simple examples. For further examples, see the examples directory.


Assuming you use RStudio, open the darch.Rproj after cloning the repository. Make sure you have gcc-fortran installed (part of the r-base-dev package on ubuntu). Now install the dependencies:

install.packages(c("ggplot2", "reshape2", "futile.logger", "caret", "Rcpp", "RcppParallel"))

You can then build the package using Build -> Clean and Rebuild.


The darch package is built on the basis of the code from G. E. Hinton and R. R. Salakhutdinov (available under Matlab Code for deep belief nets : last visit: 12.11.2015).

This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications "A fast learning algorithm for deep belief nets" (G. E. Hinton, S. Osindero, Y. W. Teh) and "Reducing the dimensionality of data with neural networks" (G. E. Hinton, R. R. Salakhutdinov). This method includes a pre training with the contrastive divergence method published by G.E Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient, as well as more recent techniques like dropout and maxout.

Copyright (C) 2013-2016 Martin Drees and contributors


Hinton, G. E., S. Osindero, Y. W. Teh, A fast learning algorithm for deep belief nets, Neural Computation 18(7), S. 1527-1554, DOI: 10.1162/neco.2006.18.7.1527, 2006.

Hinton, G. E., R. R. Salakhutdinov, Reducing the dimensionality of data with neural networks, Science 313(5786), S. 504-507, DOI: 10.1126/science.1127647, 2006.

Hinton, G. E., Training products of experts by minimizing contrastive divergence, Neural Computation 14(8), S. 1711-1800, DOI: 10.1162/089976602760128018, 2002.

Hinton, Geoffrey E. et al. (2012). "Improving neural networks by preventing coadaptation of feature detectors". In: Clinical Orthopaedics and Related Research abs/1207.0580. URL :

Goodfellow, Ian J. et al. (2013). "Maxout Networks". In: Proceedings of the 30th International Conference on Machine Learning, ICML 2013, Atlanta, GA, USA, 16-21 June 2013, pp. 1319–1327. URL :

Drees, Martin (2013). "Implementierung und Analyse von tiefen Architekturen in R". German. Master's thesis. Fachhochschule Dortmund.

Rueckert, Johannes (2015). "Extending the Darch library for deep architectures". Project thesis. Fachhochschule Dortmund. URL:

Rueckert, Johannes (20116). "Toward State-of-the-Art Deep Learning in R: darch 1.0". Master's thesis. Fachhochschule Dortmund. URL: (This describes version 0.12.0)