《卷积神经网络与计算机视觉》阅读笔记 CH-8

Chapter 8 深度学习工具和库

8.1 Theano

Theano诞生于蒙特利尔大学LISA实验室,于2008年开始开发,是第一个有较大影响力的Python深度学习框架。
是一个python库,可用于定义,优化和计算数学表达式,结合了计算机代数系统(Computer Algebra System, CAS)和优化编译器,可以为多种数学运算生成定制的C语言代码。
由于诞生于研究机构,服务于研究人员,其设计具有浓厚的学术气息,但在工程设计上有较大的缺陷,调试困难,构建图慢。现已停止开发。
作为第一个python深度学习框架,为深度学习研究人员的早期拓荒提供了极大的帮助,也为之后深度学习框架的开发奠定了基本的设计方向:以计算图为框架的核心,采用GPU加速计算

8.2 TensorFlow

2015年11月10日,Google推出的TensorFlow最初由Google机器智能研究部门的Google Brain团队开发,基于Google 2011年开发的深度学习基础架构DistBelief构建起来。社区强大。
使用静态计算图,先定义再运行(define and run),一次定义多次运行。
存在缺点:
1.系统设计过于复杂
2.接口变动频繁
3.接口设计过于晦涩难懂
4.文档混乱脱节

8.3 Keras

Keras由谷歌工程师François Chollet为主要开发者开发,是一个高层神经网络API,由纯python编写而成并使用TensorFlow,Theano和CNTK作为后端。为支持快速实验而生,能够吧想法迅速转换为结果,易于上手。
过度封装导致丧失灵活性,且程序运行缓慢。
Keras的命名来自古希腊语“κέρας (牛角)”或 “κραίνω(实现)”,意为将梦境化为现实的“牛角之门”。由荷马史诗《奥德赛》第19卷佩涅罗佩与奥德修斯的对话,无法挽留的梦幻拥有两座门,一座门由牛角制成,一座门由象牙制成,象牙之门内光彩夺目,却仅是无法实现的梦境;唯有走进牛角之门,才能由梦境看见真实

8.4 Caffe/Caffe2

Caffe全称Convolutional Architecture for Fast Feature Embedding,是一个兼具表达性、速度和思维模块化的深度学习框架。由伯克利人工智能研究小组和伯克利视觉和学习中心开发。虽然其内核是用C++编写的,但Caffe有Python和Matlab 相关接口。Caffe支持多种类型的深度学习架构,面向图像分类和图像分割,还支持CNN、RCNN、LSTM和全连接神经网络设计。Caffe支持基于GPU和CPU的加速计算内核库,如NVIDIA cuDNN和Intel MKL。

8.5 MXNet

MXNet的主要作者是李沐,现为亚马逊的官方框架,有着非常好的分布式支持,且性能特别好,占用显存低,同时其开发的语言接口支持Python、C++、R、Matlab、Scala、JavaScrip、Julia等等。
MXNet的缺点也很明显,教程不够完善,使用的人不多导致社区不大,同时每年很少有比赛和论文是基于MXNet实现的,这就使得MXNet的推广力度和知名度不高。

8.6 CNTK

CNTK由微软开发,社区不够活跃,但是性能突出,擅长语音方面的相关研究。

8.7 PyTorch

2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一个基于Python的可续计算包,提供两个高级功能:具有强大的GPU加速的张量计算(如NumPy)以及 包含自动求导系统的的深度神经网络。简洁优雅,快速高效。
优点:
1.PyTorch是相当简洁且高效快速的框架
2.设计追求最少的封装
3.设计符合人类思维,它让用户尽可能地专注于实现自己的想法
4.与google的Tensorflow类似,FAIR的支持足以确保PyTorch获得持续的开发更新
5.PyTorch作者亲自维护的论坛 供用户交流和求教问题
6.入门简单
PyTorch使用动态计算图,在运行过程中被定义,在运行时构建(define by run),可以多次构建多次运行。

8.8 其他框架

深度学习框架完整列表

你可能感兴趣的:(《卷积神经网络与计算机视觉》阅读笔记 CH-8)