「技术选型」深度学习软件选择

深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。 

深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。 [1]

深度学习在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。 [1]

下表比较了用于深度学习的著名软件框架、库和计算机程序。

e1abe02efa213be662ee77685e5784d5.png

b9a452dbecf62fdbfb2eb558aa8ecc84.png

4374d30812ae4be13c3bd90037071153.png

Deep-learning software by name

软件Apache MXNetApache SINGABigDLCaffe
创建者Apache  Software FoundationApache Software  FoundationJason  Dai (Intel)Berkeley  Vision and Learning Center
初始版本2015201520162013
软件许可证Apache 2.0Apache 2.0Apache 2.0BSD
开源YesYesYesYes
平台Linux, macOS, Windows,[37][38] AWS, Android,[39] iOS, JavaScript[40]Linux, macOS, WindowsApache  SparkLinux, macOS, Windows[2]
编写语言Small C++ core  libraryC++ScalaC++
接口C++, Python, Julia, Matlab, JavaScript, Go, R, Scala, Perl, ClojurePython, C++, JavaScala,  PythonPython, MATLAB, C++
OpenMP 支持YesNo
Yes
OpenCL 支持On roadmap[41]Supported  in V1.0
Under development[3]
CUDA 支持YesYesNoYes
自动分化Yes[42]?
Yes
预训练模型Yes[43]YesYesYes[4]
RNNYesYesYesYes
CNNYesYesYesYes
RBM/DBNsYesYes
No
并行执行(多节点)Yes[44]Yes
?
积极发展Yes

No[5]
软件ChainerDeeplearning4jDlibFlux
创建者Preferred  NetworksSkymind  engineering team; Deeplearning4j community; originally Adam GibsonDavis  KingMike  Innes
初始版本2015201420022017
软件许可证BSDApache 2.0Boost Software  LicenseMIT license
开源YesYesYesYes
平台Linux, macOSLinux, macOS, Windows, Android (Cross-platform)Cross-platformLinux, MacOS, Windows (Cross-platform)
编写语言PythonC++, JavaC++Julia
接口PythonJava, Scala, Clojure, Python (Keras), KotlinC++Julia
OpenMP 支持NoYesYes
OpenCL 支持NoNo[7]No
CUDA 支持YesYes[8][9]YesYes
自动分化YesComputational  GraphYesYes
预训练模型YesYes[10]YesYes[12]
RNNYesYesNoYes
CNNYesYesYesYes
RBM/DBNsNoYesYesNo
并行执行(多节点)YesYes[11]YesYes
积极发展No[6]

Yes
软件

Intel

 Math  

Kernel 

Library

KerasMATLAB +  Deep Learning ToolboxMicrosoft  Cognitive Toolkit (CNTK)Neural Designer
创建者IntelFrançois  CholletMathWorksMicrosoft ResearchArtelnics
初始版本
2015
2016
软件许可证ProprietaryMIT licenseProprietaryMIT  license[26]Proprietary
开源NoYesNoYesNo
平台Linux, macOS, Windows on Intel CPU[14]Linux, macOS, WindowsLinux, macOS, WindowsWindows, Linux[27] (macOS via Docker on roadmap)Linux, macOS, Windows
编写语言
PythonC, C++, Java, MATLABC++C++
接口C[15]Python, RMATLABPython (Keras), C++, Command line,[28] BrainScript[29] (.NET on roadmap[30])Graphical user  interface
OpenMP 支持Yes[16]Only  if using Theano as backendNoYes[31]Yes
OpenCL 支持NoCan  use Theano, Tensorflow or PlaidML as backendsNoNoNo
CUDA 支持NoYesTrain with Parallel  Computing Toolbox and generate CUDA code with GPU Coder[21]YesNo
自动分化YesYesYes[22]Yes?
预训练模型NoYes[18]Yes[23][24]Yes[32]?
RNNYes[17]YesYes[23]Yes[33]No
CNNYes[17]YesYes[23]Yes[33]No
RBM/DBNs
No[19]YesNo[34]No
并行执行(多节点)NoYes[20]With Parallel  Computing Toolbox[25]Yes[35]?
积极发展
YesYesNo[36]
软件OpenNNPlaidMLPyTorchTensorFlow
创建者ArtelnicsVertex.AI,IntelAdam  Paszke, Sam Gross, Soumith Chintala, Gregory Chanan (Facebook)Google Brain
初始版本2003201720162015
软件许可证GNU LGPLAGPLBSDApache 2.0
开源YesYesYesYes
平台Cross-platformLinux, macOS, WindowsLinux, macOS, WindowsLinux, macOS, Windows,[47] Android
编写语言C++Python, C++, OpenCLPython, C, C++, CUDAC++, Python, CUDA
接口C++Python, C++Python, C++, JuliaPython (Keras), C/C++, Java, Go, JavaScript, R,[48] Julia, Swift
OpenMP 支持Yes?YesNo
OpenCL 支持NoSome  OpenCL ICDs are not recognizedVia  separately maintained package[45][46][46]On  roadmap[49] but already with SYCL[50] support
CUDA 支持YesNoYesYes
自动分化?YesYesYes[51]
预训练模型?YesYesYes[52]
RNNNoYesYesYes
CNNNoYesYesYes
RBM/DBNsNo

Yes
并行执行(多节点)?YesYesYes
积极发展
YesYesYes
软件TheanoTorchWolfram  Mathematica
创建者Université de  MontréalRonan  Collobert, Koray Kavukcuoglu, Clement FarabetWolfram Research
初始版本200720021988
软件许可证BSDBSDProprietary
开源YesYesNo
平台Cross-platformLinux, macOS, Windows,[58] Android,[59] iOSWindows, macOS, Linux, Cloud computing
编写语言PythonC, LuaC++, Wolfram Language, CUDA
接口Python (Keras)Lua, LuaJIT,[60] C,  utility library for C++/OpenCL[61]Wolfram Language
OpenMP 支持YesYesYes
OpenCL 支持Under development[53]Third  party implementations[62][63]No
CUDA 支持YesYes[64][65]Yes
自动分化Yes[54][55]Through Twitter's Autograd[66]Yes
预训练模型Through Lasagne's  model zoo[56]Yes[67]Yes[68]
RNNYesYesYes
CNNYesYesYes
RBM/DBNsYesYesYes
并行执行(多节点)Yes[57]Yes[58]Yes[69]
积极发展NoNoYes
  • ^许可证这里是一个摘要,并不是完整的许可证声明。一些库可能在不同的许可证下在内部使用其他库

机器学习模型的兼容性比较

Format Name设计目标与其他格式比较

自包含

 DNN 模型

预处理和后处理用于调整和校准的运行时配置款模型互连通用平台
TensorFlow, Keras, Caffe, Torch, ONNX,算法训练No

没有/单

独的文件

在大多数格式

NoNoNoYes
ONNX算法训练Yes

没有/单

独的文件在大多数格式

NoNoNoYes
本文http://jiagoushi.pro/wikipedia-comparison-deep-learning-software
讨论:知识星球【首席架构师圈】或者加微信小号【cea_csa_cto】或者加QQ群【792862318】
公众号

【jiagoushipro】
【超级架构师】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
74d1475291174a9cde8a878f353b8179.png
微信小号

【cea_csa_cto】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

3e01113194251a329c5971686e603578.png

QQ群

【792862318】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
加QQ群,有珍贵的报告和干货资料分享。

442b5754423779f41fa38af21b8a3e3b.png

视频号【超级架构师】
1分钟快速了解架构相关的基本概念,模型,方法,经验。
每天1分钟,架构心中熟。

a082525226a7121bb1a83ae67d0c7891.png

知识星球向大咖提问,近距离接触,或者获得私密资料分享。知识星球【首席架构师圈】
喜马拉雅路上或者车上了解最新黑科技资讯,架构心得。【智能时刻,架构君和你聊黑科技】
知识星球认识更多朋友,职场和技术闲聊。知识星球【职场和技术】
微博【智能时刻】智能时刻
哔哩哔哩【超级架构师】
抖音【cea_csa_cto】超级架构师
快手【cea_csa_cto】超级架构师
小红书【cea_csa_cto】超级架构师首席架构师智库



谢谢大家关注,转发,点赞和点在看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师研究会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值