深度学习(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 模型  | 预处理和后处理  | 用于调整和校准的运行时配置  | 款模型互连  | 通用平台  | 
TensorFlow, Keras, Caffe, Torch, ONNX,  | 算法训练  | No  | 没有/单 独的文件 在大多数格式  | No  | No  | No  | Yes  | 
ONNX  | 算法训练  | Yes  | 没有/单 独的文件在大多数格式  | No  | No  | No  | Yes  | 
谢谢大家关注,转发,点赞。










