7种深度学习工具介绍

来源:互联网 发布:dblp数据集 编辑:程序博客网 时间:2024/06/18 03:47
1)TensorFlow


TensorFlow是Google基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。
–Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从图像的一端流动到另一端的计算过程。
–TensorFlow是将复杂的数据结构,传输至人工智能神经网中进行分析和处理过程的系统。
TensorFlow表达了高层次的机器学习计算,可被用于语音识别或图像识别等多项机器深度学习领域。
–TensorFlows对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,可在小到一部智能手机,大到数千台数据中心服务器的各种设备上运行。
–TensorFlow完全开源。

2)Caffe


Caffe是一个清晰而高效的深度学习框架,作者是毕业于UC Berkeley的贾扬清。
–Caffe的全称应该是Convolutional Architecture for Fast Feature Embedding,
–它是开源的,核心语言是C++,支持命令行、Python和MATLAB接口
–既可以在CPU上运行也可以在GPU上运行。License是BSD 2-Clause。
–Caffe可以应用在视觉、语音识别、机器人、神经科学和天文学领域。


3)Torch


Torch已有十多年,是一个广泛支持机器学习算法的科学计算框架,具有简单和快速的脚本语言LuaJIT和底层C/CUDA实现, Facebook开源了Torch深度学习库包
Torch的特点:
–1具有强大的n维数组;
–2具有丰富的索引、切片和transposing的例程
–3通过LuaJIT的C接口:
–4线性代数例程;
–5基于能量的神经网络模型;
–6数值优化例程;
–7支持快速高效的GPU;
–8 可移植嵌入到iOS、Android和FGPA平台。


4)Keras


Keras是一个简约的、高度模块化的神经网络库,是基于Theano的一个深度学习框架,其设计参考了Torch,用Python语言编写,支持GPU和CPU,其特点为:
–(1)使用简单,能够快速实现原理;
–(2)支持卷积网络和递归网络,以及两者的组合;
–(3)无缝运行在CPU和GPU上:
–(4)支持任意连接方式,包括多输入多输出训练。
Keras库与其他采用Theano库的区别是:
–编码风格非常简约、清晰。它把所有的要点使用小类封装起来,能够很容易地组合在一起,并创造出一种全新的模型。


5)MXNet


MXNet是一个轻量化分布式可移植的深度学习计算平台,它支持多机多节点、多GPU的计算
–openMP+MPI/SSH+Cuda/Cudnn的框架的计算速度很快,且能够与分布式文件系统结合,实现大数据的深度学习。MXNet支持从单机到多GPU.多集群的计算能力
MXNet特点如下:
–(1)基于赋值表达式建立计算图;
–(2)支持内存管理,并对两个不交叉的变量重复使用同一内存空间;
–(3)使用C++实现,并提供C风格的头文件。支持Python、R、Julia、Go和JavaScript;
–(4)支持Torch;
–(5)支持移动设备端发布。


6)CNTK


CNTK ( Computational Network Toolkit)是微软用于搭建深度神经网络的计算网络工具包,已在Github开源
–CNTK有一套极度优化的运行系统,来训练和测试神经网络,它以抽象的计算图形式构建的。
–CNTK支持CPU和GPU模型。
–CNTK支持两种方式来定义网络:一种是使用“Simple Network Builder”,通过设置少量参数,就能生成一个的标准神经网络;另一种是使用网络定义语言(NDL)。
–CNTK相比Caffe、Theano. TensoFlow等主流工具性能更强,灵活性也要好,可扩展性高。
–CNTK支持CNN. LSTM. RNN等流行的网络结构,支持CPU和GPU模式,但CNTK目前Bug比较多。


7)Theano
Theano是BSD许可证下发布的一个开源项目,是由LISA(现MILA)在加拿大魁北克的蒙特利尔大学,开发的基于Python的深度学习框架
–专门用于定义、优化、求值数学表达式,其效率比较高,适用于多维数组。
–Python的核心Theano是一个数学表达式的编译器。Theano获取用户数据结构
–使之成为一个使用Numpy、高效本地库的非常高效的代码,并能在CPU或GPU上尽可能快地运行。
原创粉丝点击