细数当前几大深度学习框架

Posted 中科大软院双创实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了细数当前几大深度学习框架相关的知识,希望对你有一定的参考价值。


自从去年三月份,Google开发的AlphaGo打败职业棋手李世石后,人工智能和机器学习的概念开始深入人心,各大高校和研究所也如火如荼的展开了关于人工智能的研究;其实,人工智能自其1956年正式提出后,到今天已经发展了六十多年的时间;那么今天,小编就带大家看看深度学习目前流行的五大框架:






01



Caffe


Caffe是一个清晰而高效的深度学习框架,为伯克利大学比较成熟的单机开源框架,落地产品比较多,主要专注于视觉领域;其作者是毕业于UC Berkeley,目前在Google工作的贾扬清博士。

Caffe的全称是Convolutional Architecture for Fast Feature Embedding,它是开源的,核心语言为C++,支持命令行、PythonMATLAB接口,既可以在CPU上运行也可以在GPU上运行。LicenseBSD 2-ClauseCaffe的应用范围很广:视觉、语音识别、机器人、神经科学、天文学领域,等等;它提供了一个完整的工具包,用来训练、测试、微调和部署模型;并具有模块化、表示和实现分离、测试覆盖全面、接口丰富和训练参考模型等特点。

Caffe以四维数组blobs方式存储和传递数据,利用层与层之间计算结果传递每一层的输入和输出,其模型是终端到终端的机器学习系统,其网络是一个有向无环图,它通过快速、标准的随机梯度下降算法来训练一个模型。

优点:

    1速度快,性能好,文档全面
    2)具有出色的卷积神经网络实现。在计算机视觉领域Caffe依然是最流行的工具包。

    3)专精于图像处理,在计算机视觉、图像识别、场景识别、视觉风格识别、目标检测等领域都有应用

    缺点:    

    1)它有很多扩展,但是由于一些遗留的架构问题,不够灵活且对递归网络和语言建模的支持很差。

2)基于层的网络结构,其扩展性不好,对于新增加的层,需要自己实现(forward, backward and gradient update

细数当前几大深度学习框架





02


TensorFlow


TensorFlow是Google基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可以在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。TensorFlow完全开源,任何人都可以用。它的特点如下:

1)高度的灵活性,它不是一个严格的“神经网络”库,只要能够将计算表示为一个数据流图,就可以使用TensorFlow。

2)较强的可移植性。TensorFlow可以在CPU和GPU上运行,也可以将模型在云端服务器或Docker容器里运行。

3)自动求微分。TensorFlow具有自动求微分的能力,只需定义预测模型的结构、将结构和目标函数结合,并添加数据,TensorFlow就能自动计算相关的微分导数。

4)多语言支持。TensorFlow支持C++、Python、Go、Java、Lua和javascript等语言。


细数当前几大深度学习框架





03

MXNet


    MXNet是一个轻量化分布式可移植的深度学习计算平台,它支持多机多节点、多GPU的计算,其openMP +MPI /SSH+Cuda/Cudnn的框架计算速度很快,并且能够与分布式文件系统结合实现大数据的深度学习。MXNet支持从单机到多GPU、多集群的计算能力。其特点如下:

1)基于赋值表达式建立计算图,类似于TensorFlowTeano、和Caffe

2)支持内存管理,并对两个不交叉的变量重复使用同一内存空间;

3)使用C++实现,并提供C风格的头文件。支持PythonRJuliaGoJavaScript

4)支持Torch

5)支持移动设备端发布。


细数当前几大深度学习框架





04

Keras


   Keras是一种简约的、高度模块化的神经网络库,是基于Theano的一个深度学习框架,它的设计参考了Torch,用Python语言编写,支持GPUCPU。其特点为:

   1)使用简单,能够快速实现原理;

   2)支持卷积网络和递归网络,以及两者的组合;

   3)无缝运行在CPUGPU上;

   4)支持任意连接方式,包括多输入多输出训练。

   Keras库与其他采用Theano库的区别在于Keras的编码风格非常简约、清晰。它把所有的要点用小类分装起来,能够很容易的组合在一起并创造出一种全新的模型。


细数当前几大深度学习框架





05

Torch


    Torch诞生已有十多年,是一个广泛支持机器学习算法的科学计算框架,易于使用并且高效,具有简单的快速脚本语言LuaJIT和底层C/DUDA实现,其特点有:

  1)具有强大的n维数组;

  2)具有丰富的索引、切片和transposing的例程;

  3)通过LuaJITdC接口;

  4)线性代数例程;

  5)基于能量的神经网络模型;

  6)数值优化例程;

  7)支持快速高效的GPU

  8)可移植嵌入到iosandroidFGPA平台;

  Torch的目标是通过极其简单的过程、最大的灵活性和速度建立自己的科学算法。Torch有一个在机器学习领域的大型生态社区动库包,包括计算机视觉软件包、信号处理、并行处理、图像、视频、音频和网络等。

  Torch的核心是流行的神经网络,它使用简单的优化库,同时具有最大的灵活性,实现复杂的神经网络的拓扑结构。通过CPUGPU等有效方式,可以建立神经网络和并行任意图。

  Torch广泛使用在许多学校的实验室,以及GoogleTwitterNVIDIAAMD、因特尔和许多其他公司。


细数当前几大深度学习框架





                  


 



以上是关于细数当前几大深度学习框架的主要内容,如果未能解决你的问题,请参考以下文章

细数TensorFlow与PyTorch的优缺点,玩AI,那个框架更加适合你?

·深度学习实战(1.5)——深度学习几大难点

带你测试对比深度学习框架!TensorFlow,Keras,PyTorch...哪家强?(附数据集)

深度学习框架哪家强?MXNet称霸CNNRNN和情感分析,TensorFlow仅擅长推断特征提取

业界当前的深度学习框架不会改变机器学习的能力增长

当前一些主流深度学习框架的简单分析