dp is a deep learning library designed for streamlining research and development using the Torch7 distribution. It emphasizes flexibility through the elegant use of object-oriented design patterns.
During my time in the LISA Lab as an apprentice of Yoshua Bengio and Aaron Courville, I was inspired by pylearn2 and Theano to build a framework better suited to my needs and style. I have been using it since November 2013, and it has recently undergone major refactoring to allow for a more seemless integration with nn through dpnn.
Among other things, this package includes :
- common datasets like MNIST, CIFAR-10 and CIFAR-100, preprocessing like Zero-Component Analysis whitening, Global Contrast Normalization, Lecun's Local Contrast Normalization, and facilities for interfacing your own.
- a framework that abstracts away common usage patterns of the nn and torch7 package such as loading datasets and early stopping.
- documentation, examples and tutorials;
A Facial Keypoints tutorial involving the case study of a Kaggle Challenge is also available. It provides an overview of the steps required for extending and using dp in the context of the challenge. And even provides the script so that you can generate your own Kaggle submissions.
The Language Model tutorial examines the implementation of a neural network language model trained on the Billion Words dataset.
In the Data tutorial, we explore different ways to wrap your own data into a DataSource so that it may be used with dp.
A brief (1 hours) overview of Torch7, which includes some details about dp, is available via this NVIDIA GTC Webinar video. In any case, this presentation gives a nice overview of Logistic Regression, Multi-Layer Perceptrons, Convolutional Neural Networks and Recurrent Neural Networks using Torch7.
[]() ## dp Packages ##- Data Library
- View : Tensor containers like DataView, ImageView and ClassView;
- BaseSet : View containers like Batch and DataSet;
- DataSource : BaseSet containers like Mnist and BillionWords;
- Preprocess : data preprocessing like ZCA and Standardize;
- Sampler : DataSet iterators like ShuffleSampler and SentenceSampler;
- Experiment Library
- Experiment : trains a Model using a DataSource and a Loss;
- Propagator : propagates a DataSet through a Model and Loss;
- Extension Library
For CUDA:
$> sudo luarocks install cunnx
These are some related package :
We appreciate issues and pull requests of all kind.