专栏名称: 深度学习与神经网络
关注深度学习教育,关注人工智能前沿科技
目录
51好读  ›  专栏  ›  深度学习与神经网络

几种深度学习框架的简单介绍

深度学习与神经网络  · 公众号  ·  · 2017-09-09 23:47

正文

1.Torch7


Torch7 主语言为 Lua 语言,Lua 语言是一种类似于 C 语言编写的开源库,开发者提供了 C 语言和 C++的接口,因此 Torch7 能够较好的嵌入 C 语言应用中,在嵌入式开发的领域中Torch7拥有独特的优势。Torch7 与其它深度学习框架最大的不同是使用了 Lua,多数深度学习框架使用的是 Python。使用 Lua 语言计算速度非常快而且可以与任何 C语言库相连。


Torch7 的另一个特点是依赖于张量类,张量类拓展了 Lua 的基本数据类型,扩展了多维数组类型。Torch7 拓展了 Intel 平台的 SSE 操作,线性代数配合现有的 BLAS/Lapack(如 Intel的 MKL)工具。并且支持并行计算构架:Open MP CUDA  GPU,上述张量库大量使用了这两种并行计算技术。在使用者的角度来说,CUDA 和 Open MP 还可以无成本的在所有“Lua”脚本中加速。

2.Theano


Theano 是 2010 年由蒙特利尔大学 Bergstra 等人在机器学习论坛上提出,并且对数学函数进行定义,自动导出梯度表达式,将表达式编译成可执行函数的方法进行了说明。Theano 最初是一个线性代数编辑器,针对用户特定的需求进行最优化的高效降维数学运算。


Bergstra 等人于 2011 年阐述了如何使用 Theano 进行深度学习模型的训练。 Theano 同样使用了 CPU 和 GPU 两种方法进行数学计算的编译。 Theano 拥有多种强大的工具,用以处理和优化符号表达式的图表。Theano 的“最优化”架构可以自动删除重复和多余 的计算从而提高了数据的稳定性。


Theano 能够进行快速的写入和执行。Theano 依赖于两个 Python 的库:Sci Py Num Py,因此能够很轻松的在精确的运算中加入操作,根据情况使用最优化版本代替原有版本。 Theano 同样也使用了 GPU 并行化计算,用 CUDA 定义了 n 维数组的类,通过嵌入GPU 的存储实现。

3.Pylearn2


Pylearn2 是蒙特利尔大学 LISA 机器学习实验室开发的机器学习研究开发库,目的是进行机器学习的研究。Pylearn2 是基于 Theano 的拓展库。为了使目前最前沿的研究能够在 Pylearn2 上使用,Pylearn2 更多关注于灵活性和拓展性。目标用户是机器学习的研究人员。Pylearn2 的“用户友好性”,意味着研究人员能在短时间内对其代码原理有精确而深入的理解,并且使用它的研究人员都能够进行精确的配置。传统的深度学习研究中,却对使用者有较高的要求,使用者必须懂得实现基本数据分析的时候算法工作的细节。


Pylearn2 与其它的机器学习库不同,比如 scikit-learn 或 Open CV 的部分学习算法,STAIR 视觉库等等。Pylearn2 机器学习库是为了给用户提供较高的性能,用户并不需要很确切的理解算法是怎样使用的。


Pylearn2 的用户基础不同,设计目标不同。 Pylearn2 是基于 Theano 的,Theano 提供了一种独立于具体实现方法的描述性语言,独立的 Pylearn2 类提供了 CPU 和 GPU 两种方法。使用符号表达式作为 Pylearn2 主要参数的好处就是可以计算符号表达式的许多函数,这些参数不能使用单独的数值计算得出。


Pylearn2 通过分解为可复用的部分实现了灵活性和扩展性。对大多数特征分解为三个元素:数据库、模型、训练算法类。数据库提供了需要训练的数据,模型存储参数并且可以生成 Theano 表达式(通过给定的输入数据可以进行一些有意义的操作,如计算空间中一点的概率密度,通过给定的输入特征推断出其类标签,等等)。对于一个特定的数据集,训练算法与模型相适应。这三个元素轮流模块化(数据集被模块化预处理,许多模型类处理为层级,训练算法能够最小化一个模块开销以及通过多种模块化回调函数改变算法特性以及模块化的终止规则)。

4.Caffe


Caffe 框架于 2014 年提出,有较高的使用性。尤其是它的网络结构使用文本形式进行编辑,不需要对具体代码有非常深刻的了解,便可以构建自己的网络模型,也以对目前前沿的网络模型进行分析和改进。Caffe 框架也同样使用了 GPU 并行计算的技术,配合CUDA 能够进行高效的运算。在 CPU 和 GPU 之间切换只需要在配置文档中更改一条语 句即可。


Caffe 框架为使用者提供了多个卷积神经网络的模型如 Le Net-5、Alex Net

等, 以及一些示例,使用者可以对这些模型直接进行分析,并不需要自己构造模型。同样对于基本的数据集如 CIFAR-10 数据集都有多个训练配置文档,有快速训练模型和完整训练模型。对于训练好的模型产生的数据还可以迁移到 Theano 上进行分析。

Caffe 深度学习框架用于两种语言的接口分别是 Python 和 MATLAB,目前的许多CVPR 最前沿的研究成果都是使用 Caffe 的接口进行应用和分析。 Caffe 的官方网站上也提供了使用 Python 如何查看每一层特征提取的结果。

Caffe 深度学习框架是一个完全开源的框架,对于非商业用途如深度学习研究人员提供免费的代码,同样在 Git Hub 上有专门的 Caffe 深度学习论坛,可供研究人员对 Caffe的改进、应用等提供讨论。


5.TensorFlow


TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统 ,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。








请到「今天看啥」查看全文