PDNN: 深度学习的一个Python工具箱

时间:2023-12-04 23:47:14

PDNN: 深度学习的一个Python工具箱

PDNN是一个在Theano环境下开发出来的一个Python深度学习工具箱。它由苗亚杰(Yajie Miao)原创。现在仍然在不断努力去丰富它的功能和扩展它的应用。PDNN发布在under Apache 2.0, one of the least restrictive licenses available。

为什么使用PDNN?

PDNN实现了一整套的模型,在这个单一的框架内,无监督学习(SDAs,RBMs),有监督学习(DNN,CNN)和多任务学习都可以实施。

PDNN是一个易于使用的工具箱,developed with the needs of non-DL reseachers in mind。训练一个DNN只需调用如下命令那么简单。在CPU和GPU的转换是自动的,这取决于GPU是否被检测到。

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有利于进一步开发。层次结构的代码组织(commandsàmodelsàlayers)具有很好的可读性。Theano环境支持梯度计算。这使得用户能够集中精力关注算法/结构的设计,节省令人头疼的梯度求导的计算。

安装过程

1. 安装Theano。更多的细节参考Theano安装。如果你正在运行Ubuntu Linux,在这篇文档中的步骤将会帮你安装Theano。

2. 从GitHub上获取稳定版的PDNN。

> git clone https://github.com/yajiemiao/pdnn

3. 增加PDNN路径到PYTHONPATH

> export PYTHONPATH=/path/to/pdnn:$PYTHONPATH

例子

在pdnn/examples目录下可以找到案例。这些案例文档将会不断地更新和丰富。在每个文档页的底部,你都可以找到每个案例的使用命令。

文档

关于PDNN一些一般的信息见如下链接:

Data Format and Reading

Learning Rate Specification

Speed up CNN Training with cuDNN

在pdnn/cmds目录下的命令能进行一般目的的DL,其中包括:

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

文档—pdnn/cmds2

---------------------------------------------------------------------------------------------------

在目录pdnn/cmds2目录下的命令是特地为ASR准备的

Training SAT Models for DNNs

Generating and Save Convolution Layer Activation

Kaldi-formatted Feature Extraction with a Trained Network 

联系他们

---------------------------------------------------------------------------------------------------

(建议)将你的问题,建议和讨论发送到GitHub Issues。你也可以发送emails给 Yajie Miaoyajiemiao@gmail.com

引用

---------------------------------------------------------------------------------------------------

如果你在你的论文/出版物中使用了PDNN请引用如下稿件:

Yajie Miao, "Kaldi+PDNN: Building DNN-based ASR Systems with Kaldi and PDNN," arXiv:1401.6984, 2014.