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. WCF中可以使用SVCUtil.exe生成客户端代理类和配置文件

    1.找到如下地址“C:\Windows\System32\cmd.exe”  命令行工具,右键以管理员身份运行(视系统是否为win7 而定)         2.输入如下命令: C:\>cd C ...

  2. python学习笔记013——模块

    1 模块module 1.1 模块是什么 模块是包含一系列的变量,函数,类等程序组 模块通常是一个文件,以.py结尾 1.2 模块的作用 1. 让一些相关的函数,变量,类等有逻辑的组织在一起,使逻辑更 ...

  3. oc set/get方法

    新建一个“Cocoa Touch Class”文件,命名为People People.h 写入 @interface People : NSObject @property int age; @end ...

  4. 进程枚举之PSAPI函数

    使用PSAPI (Process StatusAPI)函数 这是一种Windows NT/2000下的方法.核心是使用EnumProcesses函数.它的原型如下: BOOL EnumProcesse ...

  5. Python2 元组 cmp() 方法

    描述 Python2 元组 cmp() 方法用于比较两个元组,如果 T1< T2返回 -1, 如果 T1== T2返回 0, 如果 T1> T2返回 1. 语法 cmp() 方法语法: c ...

  6. Python exp() 函数

    描述 exp() 方法返回x的指数,ex. 语法 以下是 exp() 方法的语法: import math math.exp( x ) 注意:exp()是不能直接访问的,需要导入 math 模块,通过 ...

  7. java中Map,List与Set的差别

    java中Map,List与Set的差别 java集合的主要分为三种类型: Set(集) List(列表) Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,而且同一个数组 ...

  8. Java:集合,Map接口框架图

    Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合, ...

  9. env命令详解

    env命令时gnu的coreutils包内的一个软件,它的功能是:在一个修改后的环境里执行命令. 通俗的讲:一个linux软件可能被安装在好几个地方,举个例子:在最新的centos中perl的版本为5 ...

  10. [na]诺顿ghost磁盘对刻(备份系统分区或数据分区)

    一 诺顿ghost简介 ,可以克隆分区 也可以克隆磁盘 ,克隆成img或磁盘内容对刻 ,磁盘分区--img---磁盘分区 磁盘---磁盘 二 操作步骤 对刻好的系统 整体思路: ,A是模板机,A有C ...