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.

PDNN: 深度学习的一个Python工具箱的更多相关文章

  1. 一个可扩展的深度学习框架的Python实现(仿keras接口)

    一个可扩展的深度学习框架的Python实现(仿keras接口) 动机 keras是一种非常优秀的深度学习框架,其具有较好的易用性,可扩展性.keras的接口设计非常优雅,使用起来非常方便.在这里,我将 ...

  2. [深度学习]实现一个博弈型的AI,从五子棋开始(1)

    好久没有写过博客了,多久,大概8年???最近重新把写作这事儿捡起来……最近在折腾AI,写个AI相关的给团队的小伙伴们看吧. 搞了这么多年的机器学习,从分类到聚类,从朴素贝叶斯到SVM,从神经网络到深度 ...

  3. [深度学习]实现一个博弈型的AI,从五子棋开始(2)

    嗯,今天接着来搞五子棋,从五子棋开始给小伙伴们聊AI. 昨天晚上我们已经实现了一个五子棋的逻辑部分,其实讲道理,有个规则在,可以开始搞AI了,但是考虑到不够直观,我们还是顺带先把五子棋的UI也先搞出来 ...

  4. 深度学习 + OpenCV,Python实现实时视频目标检测

    使用 OpenCV 和 Python 对实时视频流进行深度学习目标检测是非常简单的,我们只需要组合一些合适的代码,接入实时视频,随后加入原有的目标检测功能. 在本文中我们将学习如何扩展原有的目标检测项 ...

  5. 【神经网络与深度学习】【python开发】caffe-windows使能python接口使用draw_net.py绘制网络结构图过程

    [神经网络与深度学习][python开发]caffe-windows使能python接口使用draw_net.py绘制网络结构图过程 标签:[神经网络与深度学习] [python开发] 主要是想用py ...

  6. MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(三)

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 在前两篇文章MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网 ...

  7. 2020年12月18号--21号 人工智能(深度学习DeepLearning)python、TensorFlow技术实战

    深度学习DeepLearning(Python)实战培训班 时间地点: 2020 年 12 月 18 日-2020 年 12 月 21日 (第一天报到 授课三天:提前环境部署 电脑测试) 一.培训方式 ...

  8. [深度学习]实现一个博弈型的AI,从五子棋开始

    好久没有写过博客了,多久,大概8年???最近重新把写作这事儿捡起来……最近在折腾AI,写个AI相关的给团队的小伙伴们看吧. 搞了这么多年的机器学习,从分类到聚类,从朴素贝叶斯到SVM,从神经网络到深度 ...

  9. 2021年1月15日【深度学习DeepLearning(python)实战班】

    深度学习网络课程QQ群群号: 1057802989(加群备注:杨春娇邀请) 强化学习QQ交流群群号: 872395038(加群备注:杨春娇邀请)

随机推荐

  1. 利用ASP.NET一般处理程序动态生成Web图像(转)

    摘自:http://www.cnblogs.com/zhouhb/archive/2011/02/15/1955262.html 一般处理程序的扩展名为ashx,它实现了IHttpHandler接口, ...

  2. ASP.NET#命名空间"System.Data"中不存在类型或命名空间名称"Linq"(是否缺少程序集引用?)

    添加完.dbml(LINQ to SQL类文件)文件后,双击.designer.cs源文件时,发现编译器提示:命名空间"System.Data"中不存在类型或命名空间名称" ...

  3. HDUOJ---1213How Many Tables

    How Many Tables Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  4. HDUOJ---三角形(组合数学)

    http://acm.hdu.edu.cn/showproblem.php?pid=1249 三角形 Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  5. 理解ROC和AUC

    分类器各种各样,如何评价这些分类器的性能呢?(这里只考虑二元分类器,分类器的输出为概率值) 方法一:概率定义法 从正样本中随机选取元素记为x,从负样本中随机选取元素记为y,x的置信度大于y的概率 计算 ...

  6. Megcup 2017 决赛第一题 规则

    2017Megcup 2017Megcup决赛第三题题解 只做出了一道题,虽然慢慢地退出了前128名,但还是要记录一下. 10点钟开始,一看第一题很熟悉,因为研究过格点图中电流问题,其实就是求解线性方 ...

  7. iOS 网络编程 TCP/UDP HTTP

    一.HTTP协议的主要特点: 1. CS模式 2. 简单快速:只需要传送请求方法和路径.(常用方法有GET,HEAD,POST) 3. 灵活:任意对象都可以,类型由Content-Type加以标记 4 ...

  8. 总结PLSQL的快捷键以及使用技巧

    http://www.dedecms.com/knowledge/data-base/oracle/2012/0724/3643.html 最近在开发过程中,遇到一些麻烦,就是开发效率问题,有时候其他 ...

  9. 谈谈easyui datagrid 的数据加载(转)

    这篇文章只谈jQuery easyui datagrid 的数据加载,因为这也是大家谈论最多的内容.其实easyui datagrid加载数据只有两种方式:一种是ajax加载目标url返回的json数 ...

  10. JVM性能监控

    有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 这些问题在日常开发中可能被很多人忽 ...