转载:https://blog.csdn.net/lyq_csdn/article/details/80632852
一、TensorFlow:
TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。
TensorFlow可被用于语音识别或图像识别等多项机器学习和深度学习领域。
CNN,卷及神经网络。
其实TensorFlow大部分内核并不是用Python编写的 :它是高度优化了C++和CUDA(Nvidia用于编程GPU的语言)的组合。 相反,通常它是使用了Eigen (高性能C ++和CUDA库)和NVidia的cuDNN (用于NVidia GPU的非常优化的DNN库,用于卷积等功能)。
TensorFlow的模型是程序员用“一种语言”(很可能是Python!)来表达。
所以说,我们再说一下这个问题:为什么TensorFlow选择Python作为表达和控制模型训练而且支持的非常好的语言?
答案很简单:Python可能是大量数据科学家和机器学习专家用的最舒适的语言,也是易于集成和控制C ++后端的语言,同时也是广泛使用与谷歌的公司内外和他们的开源产品。 鉴于使用TensorFlow的基本模型,Python的性能并不重要,这是一个很自然的契合。 NumPy也是一个巨大的加分,它可以很容易地在Python中进行预处理(也是高性能),然后将它们提供给TensorFlow,以获得真正CPU-heavy的东西。
二、Caffe(卷积神经网络框架,Convolutional Architecture for Fast Feature Embedding)
caffe是一个清晰,可读性高,快速的深度学习框架。作者是贾扬清,加州大学伯克利的ph.D,现就职于Facebook。
Caffe的全称应该是Convolutional Architecture for Fast Feature Embedding,它是一个清晰、高效的深度学习框架,它是开源的,核心语言是C++,它支持命令行、Python和Matlab接口,它既可以在CPU上运行也可以在GPU上运行。它的license是BSD 2-Clause。
Deep Learning比较流行的一个原因,主要是因为它能够自主地从数据上学到有用的feature。特别是对于一些不知道如何设计feature的场合,比如说图像和speech。
Caffe的设计:基本上,Caffe follow了神经网络的一个简单假设----所有的计算都是以layer的形式表示的,layer做的事情就是take一些数据,然后输出一些计算以后的结果,比如说卷积,就是输入一个图像,然后和这一层的参数(filter)做卷积,然后输出卷积的结果。
三、MXNet
亚马逊将MXNet指定为官方深度学习平台
目前支持以下的语言:
-
python
-
R
-
C++
-
Julia
-
Scala
比较项 | Caffe | Torch | Theano | TensorFlow | MXNet |
主语言 | C++/cuda | C++/Lua/cuda | Python/c++/cuda | C++/cuda | C++/cuda |
从语言 | Python/Matlab | - | - | Python | Python/R/Julia/Go |
硬件 | CPU/GPU | CPU/GPU/FPGA | CPU/GPU | CPU/GPU/Mobile | CPU/GPU/Mobile |
分布式 | N | N | N | Y(未开源) | Y |
速度 | 快 | 快 | 中等 | 中等 | 快 |
灵活性 | 一般 | 好 | 好 | 好 | 好 |
文档 | 全面 | 全面 | 中等 | 中等 | 全面 |
适合模型 | CNN | CNN/RNN | CNN/RNN | CNN/RNN | CNN/RNN? |
操作系统 | 所有系统 | Linux, OSX | 所有系统 | Linux, OSX | 所有系统 |
命令式 | N | Y | N | N | Y |
声明式 | Y | N | Y | Y | Y |
接口 | protobuf | Lua | Python | C++/Python | Python/R/Julia/Go |
网络结构 | 分层方法 | 分层方法 | 符号张量图 | 符号张量图 | NDArray |