【常见的深度学习框架】
【深度学习基础篇-常见的深度学习框架】
- 文前白话
- 常见的深度学习框架
- 1、Caffe
- 2、TensorFlow
- 3、 PyTorch
- 其他框架
- Reference
文前白话
深度学习是一个发展极为迅速的技术领域,除众多高校和科研院所围绕算法理论进行探索外,Google、Facebook、Microsoft、百度等很多IT公司也纷纷投身其中,先后推出了一系列深度学习的基础平台架构,如Cafe、TensorFlow、PyTorch、MXNet等。这些深度学习框架已经成功地被应用于计算机视觉、语音识别、自然语言处理等领域。这里介绍影响力比较大的几个框架。
常见的深度学习框架
1、Caffe
Caffe(Convolutional Architecture for Fast Feature Embedding)是一个兼具表达性、速度和思维模块化的深度学习框架,最初是由美国加州大学伯克利分校视觉和学习中心(Berkeley Vision and Learning Center,BVLC)开发的。Caffe在BSD协议许可下开源,项目托管于GitHub。2017年4月,Facebook发布Caffe2,其中加入了递归神经网络等新功能。2018年3月底,Caffe2并入PyTorch。Caffe不仅完全开源,而且拥有多个活跃的社区用于沟通并解答问题。
此外,Caffe还具有以下特点:
- 表示和实现分离:Caffe 使用Google的Protocol Bufer定义模型文件,采用特殊的文本文件prototxt表示网络结构,以有向无环图形式的网络构建
- 文档比较丰富:Caffe带有一系列参考模型和快速上手例程,还提供了一整套工具集,可用于模型训练、预测、微调、发布、数据预处理及自动测试等。
- 接口类型多样:Caffe的内核是用C+编写的,还提供了PVhon 和MATLAB接口,供使用者选择熟悉的语言调用、部署算法应用。
- 训练速度较快:利用OpenBLAS、cuBLAS等计算库,而且支持基于GPU的加选计算内核库,如NVIDIA cuDNN和Intel MKL,能够利用GPU实现计算加速。
早期的 Caffe 版本存在不支持多机、不可跨平台、可扩展性差等不足,尤其是 Caffe 的安装过程需要大量的依赖包,使初学者不易上手;虽然Cafe2在工程上做了很多优化,但仍然存在部分问题。
2、TensorFlow
TensorFlow是一个异构分布式系统上的大规模机器学习框架,最初是由Google Brain团队开发的,旨在方便研发人员对机器学习和深度神经网络的研究。2015年底,TensorFlow正式在GitHub上开源,目前已经被广泛应用于学术研究和工业应用。TensorFlow既可部署在由多个CPU或GPU组成的服务器集群中,也可使用AP1应用在移动设备中。
总体来看,TensorFlow具有以下特点:
- 技术支持强大:依托Google在深度学习领域的巨大影响力和强大的推广能力,成为当今最炙手可热的深度学习框架,官网上可以查看最佳官方用途、研究模型、示例和教程。
- 编程接口丰富:以使用广泛的Python 语言为主,并能应用C++、Java、JavaScript、Swift等多种常用的编程语言。
- 移植性好:不仅可以在Google Cloud和AWS中运行,而且支持Windows 7、Windows10等多种操作系统,还可以在ARM架构上编译和优化;用户可以在各种服务器和移动设备上部署自己的训练模型,无须执行单独的模型解码器或加载Python 解释器。
- 功能齐全:如基于计算图实现自动微分,使用数据流图进行数值计算,具备GPU加速支持等,性能相对较优异。
作为当前最流行的深度学习框架之一,TensorFlow尽管取得了极大的成功,但是存在版本之间兼容性不足、底层运行机制过于复杂等问题,增加了普通用户在开发和调试过程中的难度。
3、 PyTorch
PyTorch是一个快速和灵活的深度学习框架,建立在旧版的Torch和Caffe2框架之上,利用改版后的Torch C/CUDA作为后端。PyTorch通过集成加速库,如Intel MKL和NVIDIA cuDNN等,最大限度地提升处理速度。其核心CPU、GPUTensor 和神经网络后端Torch、Torch CUDA、THNN(Torch 神经网络)和THCUNN(Torch CUDA神经网络)等,都是使用C99API编写的单独库,并且融入了Caffe2的生产功能。同时,PyTorch与Python深度集成,还允许使用其他Python库。
相比于TensorFlow,PyTorch具有以下特点:
- PyTorch 可替代NumPy,可以获得GPU加速带来的便利,以便快速进行数据预处理。
- PyTorch提供的变量可以自动更新,构建自己的计算图,充分控制自己的梯度。
- PyTorch 是动态图,可以随意调用函数,使代码更简捷。
- PyTorch提供了很多方便的工具。]
2020年1月15日,Facebook正式发布了PyTorch1.4,这是自2019年10月发布PyTorch1.3后,时隔3个月迎来的一次版本升级。新版本增加了很多功能,包括支持分布式模型并行训练,为PyTorch Mobile提供Build级别的支持,对Java Binding的支持,以及剪枝方法等。此外,还对音频、视觉和文本域库进行了升级。
其他框架
除了上述几个深度学习框架,还有不少框架都有一定的影响力和用户。例如:
Theano是第一个有较大影的力的Python深度学习框架,最初诞生于加拿大蒙特利尔大学实叠室。Theano以计算图为框架,采用GPU加速计算,为之后深度学习框架的开发提供了重要借鉴,但由于在工程设计上存在一定的缺陷,2017年已停止开发。
MXNet是一个面向效率和灵活性设计的深度学习框架,吸收了不同框架(如Troch7、Theano 等)的优点,提供了多种开发的语言接口,如Python、C++、JavaScript等,并且可在CPU、GPU、服务器、台式机或者移动设备上运行。2016年11月,MXNet被Aws正式选择为其云计算的官方深度学习平台。2017年1月,MXNet项目进入Apache基金会,成为Apache的孵化器项目。尽管MXNet拥有众多的接口,尤其在分布式支持、内存与显存优化等方面获得了不少人的支持和赞誉,但由于推广力度不够、接口文档更新不及时等原因,导致目前使用的人不多,社区不大。
CNTK是Microsoft推出的一个开源深度学习工具包,它通过一系列计算步骤构成有向图来表达网络,并且支持CPU和GPU模式。CNTK的所有API均基于C++设计,并提供了很多先进算法的实现,还提供了基于C++、C#和Python的接口,因此在速度、灵活性和可扩展性等方面表现较佳,但因其早期的文档有些晦涩难懂,推广力度不够,导致社区不够活跃。
Keras是一个高层次的深度神经网络框架接口,由Python 编写而成并基于TensorFlow、Theano及CNTK后端,相当于TensorFlow、Theano、CNTK的上层接口,具有操作简单、上手容易、文档资料丰富、环境配置容易等优点,但因其过度封装导致缺乏灵活性、使用受限。**
PadllePaddle是百度研发的开源开放的深度学习平台**,是国内最早开源的深度学习平台,拥有官方支持的工业级应用模型,涵盖自然语言处理、计算机视觉、推荐引擎等领域。 PadalePaddle3.0版本升级为全面的深度学习开发套件,除了核心框架,还开放了VisualDL、PARL、AutoDL、EayDL、AIStudio等深度学习工具组件和服务平台,已经被国内企业广泛使用,也拥有一定的开发者社区生态。但是总体来看,PadlePacdale 在国内外的流行度和关注度还远远不够。
Reference
深度卷积神经网络原理与实践
【常见的深度学习框架】相关推荐
- 【CS231n 课程笔记】第八讲-----常见的深度学习框架,以及GPU和CPU介绍。
目录 0.写在前面 1.CPU VS GPU 1.1GPU 与CPU的比较 1.2性能测试 1.3实践中的问题 2.深度学习框架 2.1 计算图思想和深度学习框架 2.2 tensorflow 2.2 ...
- 深度学习:常见深度学习框架【Theano、TensorFlow、Keras、Caffe/Caffe2、MXNet、CNTK、PyTorch】
常见的深度学习框架有 TensorFlow .Caffe.Theano.Keras.PyTorch.MXNet等,如下图所示.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领 ...
- 常见深度学习框架比较
常见的深度学习框架有 TensorFlow .Caffe.Theano.Keras.PyTorch.MXNet等,如下图所示.这些深度学习框架被应用于计算机视觉.语音识别.自然语言处理与生物信息学等领 ...
- 百度嵌入式深度学习框架Paddle-Mobile介绍
本篇内容介绍嵌入式深度学习的应用场景.Paddle-Mobile的特性优势以及使用开发方法,预计阅读时间4分钟 嵌入式深度学习有哪些应用 深度学习技术已经在互联网的诸多方向产生影响,关于深度学习和神经 ...
- TensorFlow贡献者黄文坚:解读对比13个深度学习框架后的选择
[AI创新者]TensorFlow贡献者黄文坚:解读对比13个深度学习框架后的选择 AI创新者 Google 人工智能 深度学习 TensorFlow 阅读5774 [AI创新者]是CSDN人工智能 ...
- numpy pytorch 接口对应_拆书分享篇深度学习框架PyTorch入门与实践
<<深度学习框架PyTorch入门与实践>>读书笔记 <深度学习框架PyTorch入门与实践>读后感 小作者:马苗苗 读完<<深度学习框架PyTorc ...
- 百度官方文档Plus版,PaddlePaddle深度学习框架介绍
作者:木羊同学 来源:华章计算机(hzbook_jsj) 现在深度学习框架不但内卷严重,而且头部效应明显.一提起深度学习框架,首先想到的肯定是Google家的TensorFlow,和Facebook家 ...
- 国产首款——飞桨PaddlePaddle深度学习框架介绍
现在深度学习框架不但内卷严重,而且头部效应明显.一提起深度学习框架,首先想到的肯定是Google家的TensorFlow,和Facebook家的PyTorch.究竟排名谁先谁后,还要看你是工业界还是学 ...
- 好书分享——《深度学习框架PyTorch:入门与实践》
内容简介 : <深度学习框架PyTorch:入门与实践>从多维数组Tensor开始,循序渐进地带领读者了解PyTorch各方面的基础知识.结合基础知识和前沿研究,带领读者从零开始完成几个经 ...
最新文章
- (2016北京集训十)【xsy1529】小Q与进位制 - 分治FFT
- 广西卫生职业技术学院计算机考试,广西卫生职业技术学院单招2021年春招分数线...
- 周刊#003提要:吴恩达团队盘点2019 AI 大事件圣诞 AI 论战
- Winform中将Bitmap对象通过pictureBox显示图片
- python argpare 模块的简单用法
- 如何在 Github 工作流文件里引用自定义实现的 action
- Flash开发的基本概念
- ShardingSphere-Proxy 分库分表 简单示例
- java boolean byte_java基础boolean类型所占字节问题
- 【信号与系统】复习总结笔记
- OEM/ODM windows 10 源镜像下载
- 三极管放大电路的基本原理
- 世园会开幕式上的机器人_小胖机器人驻扎“2019北京世园会”媒体分会场
- 多表查询和动态SQL
- 猿如意|IntelliJ IDEA Community下载安装以及基础开发设置和快捷键设置的详细教程
- 客户要管理,就靠crm吗?
- 138企业邮箱pop/imap和smtp服务器地址
- 开源社区ECE:Elastic认证考试复盘总结134贴
- 玩吧斗兽棋的一些攻略 同级子谁胜负问题
- 众所周知的广告屏蔽神器uBlock/Adguard,为啥你装上后和没装一样?
热门文章
- python入门爬虫微信简单的实现微信好友数量
- 为什么电路板上的线路总是弯曲的?
- 关于Requests代理,你应该知道的
- 高中生的高效学习法之“纵横术”
- 太阳光线为什么是近似平行的?------余弦定理搞起
- 4-4模拟赛 囚人的旋律——DP
- vue如何修改网页的图标,title
- 【GNSS】GNSS原理:双频观测模型
- Exception in thread main java.lang.ArrayIndexOutOfBoundsException: 4 	at text.Division.main(Divisi
- AR程序(拍照、AR识别、存储)