作者 | 弗拉德
起源 | 弗拉德(公众号:fulade_me)
人工智能
人工智能是计算机科学的一个分支,它希图理解智能的本质,并生产出一种新的能以人类智能类似的形式做出反馈的智能机器,该畛域的钻研包含机器人、语言辨认、图像识别、自然语言解决和专家系统等。人工智能从诞生以来,实践和技术日益成熟,应用领域也不断扩大,能够构想,将来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能能够对人的意识、思维的信息过程的模仿。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。那让咱们来看一下都有哪些人工智能开发的框框。
Theano
早在 2007 加拿大的蒙特利尔大学就开始了 Theano 的开发,它最后是为了用于学术研究而设计的。尽管出身于学术界,然而在过来很长一段时间外面,Theano 都是深度学习开发与钻研的行业标准。
Theano 其实是一个比拟底层的库,它比拟适宜数值计算和优化。反对主动函数梯度计算,反对 Python 接口,并且集成了 Numpy。它并不只是专门用来做深度学习的,能够说 Theano 是 Python 的一个数值计算库。它也有毛病,就是不反对 GPU 和程度扩大。
因为 TensorFlow 在谷歌的反对下强势崛起,Theano 能够说是日渐式微,这外面的有个标志性的事件就是 Theano 创始人之一 Ian Goodfellow,他放弃了 Theano 转去 Google 开发 TensorFlow。
Caffe
Caffe 是由就读于加州大学伯克利分校的中国籍博士生 贾扬清 在 2013 年创立的,是一个老牌框架。
贾扬清本科和硕士都是清华毕业,他对两个深度学习的框架都有奉献,一个是 TensorFlow,他以前是在 Google 工作。在 2016 年贾扬清退出到 Facebook,开始了 Caffe 框架的开发。
Caffe 的全称是 ”Convolution Architecture For Feature Extraction”,意思是能用于特征提取的卷积架构,它的设计初衷其实是为了针对计算机视觉。毛病是灵活性有余的问题,为了做模型调整会用到 C ++ 和 CUDA。
在 2017 年 4 月,Facebook 公布了 Caffe2,这标记着 Caffe 有了一个很大的倒退。咱们能够把它看作是对 Caffe 更细粒度的重构,在实用的根底上减少了扩展性和灵活性。随着工夫的倒退,Facebook 最初把 Caffe2 合并到了 PyTorch 下面了。
PyTorch
说 PyTorch 之前,咱们得先说一说 Torch。Torch 是一个非主流的深度学习框架,它是基于 Lua 语言的。而当初支流的深度学习框架应用的语言根本都是 Python,所以用 Torch 就会显得很非主流。然而 Facebook 的人工智能研究所应用的就是 Torch,Torch 十分实用于卷积神经网络,同时它的灵便度也很高。
有一个特点就是:它是命令式的,反对动静模型。大多数的机器学习框架都是反对动态图模型,也就是说在进行调试时,咱们须要先把模型定义好,而后再进行运行和计算。而 Torch 它的灵便度更高,它能够在运行的过程中更改图模型,这就叫做反对动静的图模型。在 2017 年初,Facebook 在 Torch 的根底上,公布了一个全新的机器学习框架叫 PyTorch。PyTorch 能够说是 Torch 的 Python 版,减少了很多个性。
2018 年 4 月 Facebook 发表将 Caffe2 并入 PyTorch,所以说 Caffe2 就以 PyTorch 的模式存在。
MXNet
MXNet 是亚马逊它反对的深度学习框架。MXNet 尝试把两种模式无缝的联合起来,一种是在命令式编程上提供张量运算,一种是在申明式的编程反对符号表达式。这样用户就能够自在的混合来实现他们本人的想法。也就是说,它联合了动态定义计算图和动静定义计算图的劣势。另外 MXNet 反对的语言品种也比拟多,除了常见的想 Python 还有 C ++,要害的他对 R 语音也反对的很好,对 Go 也有反对。然而它的学习曲线会比拟高。
CNTK
CNTK 又名:Microsoft Cognitive Toolkit。在 2016 年的微软发表在给 github 上开源 CNTK(computational Network ToolKit)。CNTK 对语音和图像反对特地好,语音辨认和图像识别也比拟快。它还有着更为弱小的可扩展性,开发者能够应用多台计算机去实现 GPU 的扩大,从而可能更加灵便地应答大规模的试验。当然它也反对反对 C# 语言。
Keras
Keras 是一个高级封装的库,同样也十分的受欢迎。它能够跟 Theano、CNTK、TensorFlow 联合起来工作。它相当于架设在这些框架上的更高一层,因为更高一层,这使得它的应用十分的简略。Keras 强调的就是极简主义,你只须要几行代码就能构建一个神经网络。同样它号称为反对疾速试验而生,可能把你的想法的迅速转换成为后果。它的语法的也比拟明细,文档的也提供的十分好。当然了,它也是反对 Python 的。
DL4J
DJF4 是一个基于 JVM,聚焦行业利用,而且提供商业反对的分布式的深度学习框架。它的主旨就是:在正当的工夫里去解决各类波及大量数据的问题。
从它的名字上不难看出,它其实是 Deep Learning For Java 的缩写,它对 Java 的反对是它最大的特点。它对应用 Java 作为开发语言的开发者来说十分敌对,它能够与 Hadoop 和 Spark 很好的联合起来,也能够应用任意数量的 GPU 或者 CPU 运行。
Chainer
Chainer 的是一个专门为高效钻研和开发深度学习算法而设计的开源框架,它也是基于 Python 的深度学习框架。Chanier 在 ” 实时 ” 使构件计算图,” 边运行边定义 ” 的办法使得构建深度学习网络的变得很灵便。也就是说,Chanier 是反对动态图定义的。那这种办法能够让用户在每次迭代的时候能够依据条件去更改计算图,也很容易应用规范的调试器和分析器来调试和重构。
PaddlePaddle
PaddlePaddle 是百度旗下的深度学习开源平台,它反对并行分布式深度学习。在 2016 年 9 月 1 日百度世界大会上,过后百度的首席科学家吴恩达发表:百度的深度学习平台将对外开放,命名为 PaddlePaddle。吴恩达认为 PaddlePaddle 比一个 PaddleP 要更容易让人记住,事实上也是,PaddlePaddle 比 Paddle 更容易上口。百度的资深科学家,PaddlePaddle 的研发负责人徐伟介绍:在 PaddlePaddle 的帮忙下,深度学习模型的设计如同编写伪代码一样容易,工程师只须要关注模型的高层构造,而无需放心任何琐碎的底层问题。
TensorFlow
TensorFlowA machine learning platform for everyone to solve real problems。对每个人来解决事实问题的机器学习平台,这也是 TensorFlow 存在的主旨。它岂但在下层反对神经网络,它还很全面的反对别的机器学习的算法,像 K -Means,决策树,向量积等等。它对语言的反对也很多,Python、C++、Java。在硬件层面,它也能够利用 CPU,GPU 进行计算。
另外的谷歌还出了专门的处理器,叫 TPU,也就是 Tensor 处理器,另外它也反对在挪动端应用。还提供了一个叫 TensorBoard 的可视化工具。这个工具十分弱小,它能够基于运行的一些日志和文件,可视化得把模型训练和后果展示进去。
TensorFlow 提供了不同档次的接口,从低层到高层。越低的档次越灵便,越容易去管制,越高层次是越容易应用。
TensorFlow 反对的语言也十分多:Go、Python、C++、Java、Swift、R 语音、C#、js 等。
还有运行在 Web 端的 TensorFlow.js,咱们能够应用 Javascript 在网页端进行机器学习的训练和应用。在挪动端同样提供反对的是 TensorFlowLite,咱们能够把在服务器端训练好的模型下发到挪动端(Android、iOS、树莓派等),在挪动端通过 TensorFlowLite 来应用。