深度学习仿真工具(Simulation tools for deep learning)也就是像TensorFlow、Caffe等深度学习框架。他们的出现降低了深度学习入门的门槛,你可以依据需要,使用已有的模型,模型的参数你自己训练得到,你也可以在已有模型的基础上增加自己的layer,或者是在顶端选择自己需要的分类器。
七大深度学习仿真工具1.TensorFlowTensorFlow是Google基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理1。
–Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从图像的一端流动到另一端的计算过程。
–TensorFlow是将复杂的数据结构,传输至人工智能神经网中进行分析和处理过程的系统。
TensorFlow表达了高层次的机器学习计算,可被用于语音识别或图像识别等多项机器深度学习领域。
–TensorFlows对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,可在小到一部智能手机,大到数千台数据中心服务器的各种设备上运行。
–TensorFlow完全开源。
2.CaffeCaffe是一个清晰而高效的深度学习框架,作者是毕业于UC Berkeley的贾扬清1。
–Caffe的全称应该是Convolutional Architecture for Fast Feature Embedding,
–它是开源的,核心语言是C++,支持命令行、Python和MATLAB接口
–既可以在CPU上运行也可以在GPU上运行。License是BSD 2-Clause。
–Caffe可以应用在视觉、语音识别、机器人、神经科学和天文学领域。
3.TorchTorch已有十多年,是一个广泛支持机器学习算法的科学计算框架,具有简单和快速的脚本语言LuaJIT和底层C/CUDA实现, Facebook开源了Torch深度学习库包
Torch的特点:
–1具有强大的n维数组;
–2具有丰富的索引、切片和transposing的例程
–3通过LuaJIT的C接口:
–4线性代数例程;
–5基于能量的神经网络模型;
–6数值优化例程;
–7支持快速高效的GPU;
–8 可移植嵌入到iOS、Android和FGPA平台。
4.KerasKeras是一个简约的、高度模块化的神经网络库2,是基于Theano的一个深度学习框架,其设计参考了Torch,用Python语言编写,支持GPU和CPU,其特点为:
–(1)使用简单,能够快速实现原理;
–(2)支持卷积网络和递归网络,以及两者的组合;
–(3)无缝运行在CPU和GPU上:
–(4)支持任意连接方式,包括多输入多输出训练。
Keras库与其他采用Theano库的区别是:
–编码风格非常简约、清晰。它把所有的要点使用小类封装起来,能够很容易地组合在一起,并创造出一种全新的模型。
5.MXNetMXNet是一个轻量化分布式可移植的深度学习计算平台,它支持多机多节点、多GPU的计算
–openMP+MPI/SSH+Cuda/Cudnn的框架的计算速度很快,且能够与分布式文件系统结合,实现大数据的深度学习。MXNet支持从单机到多GPU.多集群的计算能力2。
MXNet特点如下:
–(1)基于赋值表达式建立计算图;
–(2)支持内存管理,并对两个不交叉的变量重复使用同一内存空间;
–(3)使用C++实现,并提供C风格的头文件。支持Python、R、Julia、Go和JavaScript;
–(4)支持Torch;
–(5)支持移动设备端发布。
6.CNTKCNTK ( Computational Network Toolkit)是微软用于搭建深度神经网络的计算网络工具包,已在Github开源。
–CNTK有一套极度优化的运行系统,来训练和测试神经网络,它以抽象的计算图形式构建的。
–CNTK支持CPU和GPU模型。
–CNTK支持两种方式来定义网络:一种是使用“Simple Network Builder”,通过设置少量参数,就能生成一个的标准神经网络;另一种是使用网络定义语言(NDL)。
–CNTK相比Caffe、Theano. TensoFlow等主流工具性能更强,灵活性也要好,可扩展性高。
–CNTK支持CNN. LSTM. RNN等流行的网络结构,支持CPU和GPU模式2。
7.TheanoTheano是BSD许可证下发布的一个开源项目,是由LISA(现MILA)在加拿大魁北克的蒙特利尔大学,开发的基于Python的深度学习框架。
–专门用于定义、优化、求值数学表达式,其效率比较高,适用于多维数组。
–Python的核心Theano是一个数学表达式的编译器。Theano获取用户数据结构
–使之成为一个使用Numpy、高效本地库的非常高效的代码,并能在CPU或GPU上尽可能快地运行2。
本词条内容贡献者为:
方正 - 副教授 - 江南大学