PDNN: A Python Toolkit for Deep Learning
----------------------------------------------------------------------------------------------
   
PDNN is a Python deep learning toolkit developed under the Theano environment. It was originally created by Yajie Miao.  Continuous
   
efforts have been made to enrich its features and extend its application. PDNN is released under Apache 2.0, one of the least restrictive
   
licenses available.
   

 
View on GitHub



Why use PDNN?
----------------------------------------------------------------------------------------------
  
PDNN implements a complete set of models. Unsupervised learning (SDAs, RBMs), supervised learning (DNN, CNN) and multi-task
   
learning can be conducted within a single framework.
  
PDNN is an easy-to-use toolkit developed with the needs of non-DL reseachers in mind.  Training a DNN is as simple as calling the
   
following command. Switching between CPU and GPU is automatic, depending on if GPUs are detected.
  
python pdnn/cmds/run_DNN.py --train-data "train.pickle.gz,partition=600m,random=true" \
                            --valid-data "valid.pickle.gz,
partition=600m,random=true" \
                            --nnet-spec "784:1024:1024:1024:1024:1024:1901" \
                            --wdir ./  --param-output-file dnn.mdl
  
PDNN facilitates further development. Hierarchical code organization (commands --> models --> layers) poses nice readability. The
   
Theano environment supports gradient computation. This enables users to focus on algorithm/architecture design, saving the headache
   
of gradient derivation.



Installation
----------------------------------------------------------------------------------------------
  
1.
Install Theano. Refer to the Theano installation for more details. If you are running Ubuntu Linux, following steps in this document
   
    will set up Theano for you.
   
2. Check out the stable version of PDNN from GitHub
   
    > git clone https://github.com/yajiemiao/pdnn
   
3. Add the PDNN path to PYTHONPATH
   
    > export PYTHONPATH=/path/to/pdnn:$PYTHONPATH



Examples
----------------------------------------------------------------------------------------------
  
Examples can be found under pdnn/examples. This example archive will be updated and enriched continuously.
   
At the bottom of each documentation page, you can find the example for each command.



Documentation
-----------------------------------------------------------------------------------------------
   
Some general information about PDNN
    
Data Format and Reading
    
Learning Rate Specification
    
Speed up CNN Training with cuDNN

   
Commands under pdnn/cmds enable general-purpose DL including:
   
Training Deep Neural Networks
   
Training Convolutional Neural Networks
   
Training Stacked Restricted Boltzmann Machines
   

Training Stacked Denoising Autoencoders
   
Multi-task Learning of DNNs
   
Feature Extraction with a Trained Network



Documentation -- pdnn/cmds2
----------------------------------------------------------------------------------------------
  
Commands under pdnn/cmds2 are specifically for ASR
   
Training SAT Models for DNNs
   
Generating and Save Convolution Layer Activation

   
Kaldi-formatted Feature Extraction with a Trained Network



Contacting us
----------------------------------------------------------------------------------------------

(Recommended) Post your questions, suggestions, and discussions to GitHub Issues.

You can also send emails to Yajie Miao (yajiemiao AT gmail.com)



Reference
----------------------------------------------------------------------------------------------

Please cite the following manuscript if you use PDNN in your papers/publications:
     
Yajie Miao, "Kaldi+PDNN: Building DNN-based ASR Systems with Kaldi and PDNN," arXiv:1401.6984, 2014.