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

简介: 「技术选型」深度学习软件如何选择?

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

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

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

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



Deep-learning software by name

软件 Apache MXNet Apache SINGA BigDL Caffe
创建者 Apache  Software Foundation Apache Software  Foundation Jason  Dai (Intel) Berkeley  Vision and Learning Center
初始版本 2015 2015 2016 2013
软件许可证 Apache 2.0 Apache 2.0 Apache 2.0 BSD
开源 Yes Yes Yes Yes
平台 Linux, macOS, Windows,[37][38] AWS, Android,[39] iOS, JavaScript[40] Linux, macOS, Windows Apache  Spark Linux, macOS, Windows[2]
编写语言 Small C++ core  library C++ Scala C++
接口 C++, Python, Julia, Matlab, JavaScript, Go, R, Scala, Perl, Clojure Python, C++, Java Scala,  Python Python, MATLAB, C++
OpenMP 支持 Yes No
Yes
OpenCL 支持 On roadmap[41] Supported  in V1.0
Under development[3]
CUDA 支持 Yes Yes No Yes
自动分化 Yes[42] ?
Yes
预训练模型 Yes[43] Yes Yes Yes[4]
RNN Yes Yes Yes Yes
CNN Yes Yes Yes Yes
RBM/DBNs Yes Yes
No
并行执行(多节点) Yes[44] Yes
?
积极发展 Yes

No[5]
软件 Chainer Deeplearning4j Dlib Flux
创建者 Preferred  Networks Skymind  engineering team; Deeplearning4j community; originally Adam Gibson Davis  King Mike  Innes
初始版本 2015 2014 2002 2017
软件许可证 BSD Apache 2.0 Boost Software  License MIT license
开源 Yes Yes Yes Yes
平台 Linux, macOS Linux, macOS, Windows, Android (Cross-platform) Cross-platform Linux, MacOS, Windows (Cross-platform)
编写语言 Python C++, Java C++ Julia
接口 Python Java, Scala, Clojure, Python (Keras), Kotlin C++ Julia
OpenMP 支持 No Yes Yes
OpenCL 支持 No No[7] No
CUDA 支持 Yes Yes[8][9] Yes Yes
自动分化 Yes Computational  Graph Yes Yes
预训练模型 Yes Yes[10] Yes Yes[12]
RNN Yes Yes No Yes
CNN Yes Yes Yes Yes
RBM/DBNs No Yes Yes No
并行执行(多节点) Yes Yes[11] Yes Yes
积极发展 No[6]

Yes
软件

Intel

 Math  

Kernel 

Library

Keras MATLAB +  Deep Learning Toolbox Microsoft  Cognitive Toolkit (CNTK) Neural Designer
创建者 Intel François  Chollet MathWorks Microsoft Research Artelnics
初始版本
2015
2016
软件许可证 Proprietary MIT license Proprietary MIT  license[26] Proprietary
开源 No Yes No Yes No
平台 Linux, macOS, Windows on Intel CPU[14] Linux, macOS, Windows Linux, macOS, Windows Windows, Linux[27] (macOS via Docker on roadmap) Linux, macOS, Windows
编写语言
Python C, C++, Java, MATLAB C++ C++
接口 C[15] Python, R MATLAB Python (Keras), C++, Command line,[28] BrainScript[29] (.NET on roadmap[30]) Graphical user  interface
OpenMP 支持 Yes[16] Only  if using Theano as backend No Yes[31] Yes
OpenCL 支持 No Can  use Theano, Tensorflow or PlaidML as backends No No No
CUDA 支持 No Yes Train with Parallel  Computing Toolbox and generate CUDA code with GPU Coder[21] Yes No
自动分化 Yes Yes Yes[22] Yes ?
预训练模型 No Yes[18] Yes[23][24] Yes[32] ?
RNN Yes[17] Yes Yes[23] Yes[33] No
CNN Yes[17] Yes Yes[23] Yes[33] No
RBM/DBNs
No[19] Yes No[34] No
并行执行(多节点) No Yes[20] With Parallel  Computing Toolbox[25] Yes[35] ?
积极发展
Yes Yes No[36]


软件 OpenNN PlaidML PyTorch TensorFlow
创建者 Artelnics Vertex.AI,Intel Adam  Paszke, Sam Gross, Soumith Chintala, Gregory Chanan (Facebook) Google Brain
初始版本 2003 2017 2016 2015
软件许可证 GNU LGPL AGPL BSD Apache 2.0
开源 Yes Yes Yes Yes
平台 Cross-platform Linux, macOS, Windows Linux, macOS, Windows Linux, macOS, Windows,[47] Android
编写语言 C++ Python, C++, OpenCL Python, C, C++, CUDA C++, Python, CUDA
接口 C++ Python, C++ Python, C++, Julia Python (Keras), C/C++, Java, Go, JavaScript, R,[48] Julia, Swift
OpenMP 支持 Yes ? Yes No
OpenCL 支持 No Some  OpenCL ICDs are not recognized Via  separately maintained package[45][46][46] On  roadmap[49] but already with SYCL[50] support
CUDA 支持 Yes No Yes Yes
自动分化 ? Yes Yes Yes[51]
预训练模型 ? Yes Yes Yes[52]
RNN No Yes Yes Yes
CNN No Yes Yes Yes
RBM/DBNs No

Yes
并行执行(多节点) ? Yes Yes Yes
积极发展
Yes Yes Yes


软件 Theano Torch Wolfram  Mathematica
创建者 Université de  Montréal Ronan  Collobert, Koray Kavukcuoglu, Clement Farabet Wolfram Research
初始版本 2007 2002 1988
软件许可证 BSD BSD Proprietary
开源 Yes Yes No
平台 Cross-platform Linux, macOS, Windows,[58] Android,[59] iOS Windows, macOS, Linux, Cloud computing
编写语言 Python C, Lua C++, Wolfram Language, CUDA
接口 Python (Keras) Lua, LuaJIT,[60] C,  utility library for C++/OpenCL[61] Wolfram Language
OpenMP 支持 Yes Yes Yes
OpenCL 支持 Under development[53] Third  party implementations[62][63] No
CUDA 支持 Yes Yes[64][65] Yes
自动分化 Yes[54][55] Through Twitter's Autograd[66] Yes
预训练模型 Through Lasagne's  model zoo[56] Yes[67] Yes[68]
RNN Yes Yes Yes
CNN Yes Yes Yes
RBM/DBNs Yes Yes Yes
并行执行(多节点) Yes[57] Yes[58] Yes[69]
积极发展 No No Yes


  • ^许可证这里是一个摘要,并不是完整的许可证声明。一些库可能在不同的许可证下在内部使用其他库

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

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

自包含

 DNN 模型

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

没有/单

独的文件

在大多数格式

No No No Yes
ONNX 算法训练 Yes

没有/单

独的文件在大多数格式

No No No Yes


目录
打赏
0
0
0
0
110
分享
相关文章
基于YOLOv8的多目标检测与自动标注软件【python源码+PyqtUI界面+exe文件】【深度学习】
基于YOLOv8的多目标检测与自动标注软件【python源码+PyqtUI界面+exe文件】【深度学习】
利用BP算法优化企业电脑监控软件:一览深度学习在安全防护中的崭新应用
不知道大家有没有听说过BP(Backpropagation)神经网络算法,听上去比较高级,但其实也是挺酷的!而且BP算法还可以在企业电脑监控软件方面大显身手哦。想知道怎么玩转它吗?别担心,接下来咱们就用通俗易懂的语言来了解一下BP算法在企业电脑监控软件中的作用——
125 0
深入探索:深度学习在时间序列预测中的强大应用与实现
时间序列分析是数据科学和机器学习中一个重要的研究领域,广泛应用于金融市场、天气预报、能源管理、交通预测、健康监控等多个领域。时间序列数据具有顺序相关性,通常展示出时间上较强的依赖性,因此简单的传统回归模型往往不能捕捉其中复杂的动态特征。深度学习通过其非线性建模能力和层次结构的特征提取能力,能够有效地捕捉复杂的时间相关性和非线性动态变化模式,从而在时间序列分析中展现出极大的潜力。