当前位置: 首页 > 科技观察

深度学习领域常用的十大深度学习框架

时间:2023-03-21 20:29:58 科技观察

本节将介绍深度学习领域常用的10个深度学习框架,包括MindSpore、PaddlePaddle、PyTorch、TensorFlow。1、MindSpore2020年3月28日,华为在2020开发者大会上宣布,全场景AI计算框架MindSpore在码云上正式开源,企业级AI应用开发套件ModelArtsPro也在华为上线云。该框架是一个统一的训练和推理框架,支持设备、边缘和云的独立/协调。MindSpore框架结构如图3-23所示。图3-23 MindSpore框架结构图。其API包括Python版本、C++版本和Java版本。MindSpore旨在提升数据科学家和算法工程师的开发体验,为升腾AI处理器提供原生支持和软硬件协同优化。MindSpore官网如图3-24所示。图3-24 MindSpore官网二、MegEngine2020年3月25日,北京旷视科技有限公司宣布开源其人工智能生产力平台Brain++的核心组件——MegEngine。MegEngine的架构如图3-25所示。它是一个快速、可扩展、易于使用的深度学习框架,支持自动推导。它包括三个特性——动态和静态训练能力、集成训练和推理、以及全平台效率。支持。图3-25 MegEngine的架构另外,为了方便开发者迁移,降低学习成本,旷视团队还对MegEngine框架进行了全面升级,尊重整个框架的界面设计和界面命令。开发者在PyTorch机器学习和数学计算方面的使用习惯,让开发者能够在最短的时间内快速上手。MegEngine官网如图3-26所示。图3-26 MegEngine官网值得一提的是,为了方便开发者学习,旷视团队还推出了MegStudio在线深度学习开发平台,提供数据、模型和免费算力服务帮助开发者快速高效。高效的深度学习开发。MegStudio官网如图3-27所示。图3-27 MegStudio官网3.Jittor2020年3月20日,北京信息科学技术研究中心视觉媒体智能计算团队宣布开源其深度学习框架——Jittor(吉托)。Jittor官网如图3-28所示。图3-28 Jittor官网该框架完全基于动态编译,内部使用创新的元算子和统一的计算图。元运算符与NumPy一样易于使用,并超越NumPy,支持更复杂和高效的操作。统一计算图结合了静态计算图和动态计算图的优点,在易用的同时提供了高性能的优化。图3-29显示了Jittor与TensorFlow和PyTorch的特性对比。图3-29 框架对比(来源:清华大学官网)4.PaddlePaddle2018年7月,百度开源深度学习框架Paddle(PaddlePaddlev0.14),包括CV、NLP、speech、reinforcementLearning和其他型号。经过约3年的开发,2021年3月,飞桨2.0正式版发布。该框架基于百度多年的深度学习技术研究和业务应用。深度学习平台集成了深度学习核心训练和推理框架、基础模型库、端到端开发包和丰富的工具,帮助开发者快速实现AI想法,快速开展AI业务。值得一提的是,百度还为我们提供了在线深度学习平台AIStudio。Paddle官网如图3-30所示。图3-30 飞桨官网5.NCNNNCNN是腾讯优图实验室开源项目。是一款针对手机端优化的高性能神经网络前向计算框架。框架从设计之初就考虑了移动端的部署和使用,无第三方依赖,跨平台,移动端的CPU速度比所有已知的开源框架都要快。基于NCNN,开发者可以轻松地将深度学习算法移植到手机上并高效执行,开发人工智能APP。目前很多腾讯应用(如QQ、Q空间、天天Ptu、微信等)都使用了NCNN。腾讯优图官网如图3-31所示。图3-31 腾讯优图官网6.Caffe2013年9月,贾扬清在GitHub上正式开源了Caffe。该框架的英文全称是ConvolutionalArchitectureForFastEmbedding。是一个清晰高效的深度学习框架,核心语言是C++,其代码和框架都比较简单,代码易于扩展,运行速度快,也适合深度分析,这非常适合初学者学习。2017年4月18日,Meta(前身为Facebook)开源了Caffe2,其开发侧重于性能和跨平台部署,而Meta的PyTorch侧重于快速原型制作和研究灵活性。Caffe2官网如图3-32所示。图3-32 Caffe2官网7.MXNet2016年11月,亚马逊正式开源MXNet。该框架是一个轻量级、可移植、灵活的分布式深度学习框架,支持CNN、RNN和LSTM模型。它为图像、手写文本、语音识别和预测以及自然语言处理提供了出色的工具。它的优点是支持内存和显存的分配和优化。相同的深度学习模型在MXNet中往往占用更少的内存和显存。MXNet官网如图3-33所示。图3-33 MXNet官网8.Keras2015年3月,谷歌正式开源了Keras。它的初始版本同时支持CNN和RNN。该框架以TensorFlow、Theano、CNTK作为底层引擎,对其功能进行统一封装。Keras官网如图3-34所示。图3-34 Keras官网2017年,Keras成为TensorFlow的默认API。迄今为止,谷歌大力推广Keras+TensorFlow的深度学习框架。在TensorFlow2.4.1版本中,Keras已经集成到TensorFlow中,作为tf.keras模块提供给开发者使用,如图3-35所示。图3-35 tf.keras模块9.PyTorch2017年1月,元人工智能研究院在GitHub上开源了PyTorch深度学习框架。Meta用Python重写了基于Lua的深度学习库Torch,继承了其灵活、动态的编程环境和友好的界面,支持快速灵活地构建动态神经网络,也允许在开发过程中快速更改代码在不影响其性能的情况下进行培训。引导系统,使其成为流行的动态图框架。PyTorch对Caffe2和PyTorch0.4框架的代码库进行了重构和统一,删除了重复的组件并共享了上层抽象,支持高效的图模式执行、移动端部署和广泛的供应商集成等,具有PyTorch和Caffe2的优点。PyTorch官网如图3-36所示。图3-36 PyTorch官网10.TensorFlow2015年11月,谷歌正式开源TensorFlow。该框架由GoogleBrain团队开发,是一个端到端的机器学习开源平台,具有全面而灵活的生态系统。它包含各种工具、库和社区资源,可帮助开发人员轻松构建和部署由机器学习提供支持的应用程序。该框架具有以下三个显着特点。轻松构建模型:在即时执行环境中使用Keras等直观的高级API轻松构建和训练机器学习模型,使我们能够快速迭代模型并轻松调试它们。随时随地可靠的机器学习生产:无论使用何种语言,开发者都可以轻松地在云端、本地、浏览器或设备上训练和部署模型。强大的研究实验:快速将概念转化为代码,然后创建高级模型,最后向公众发布。目前,TensorFlow是所有深度学习框架中生态最完整的框架之一。采用C++语言开发,支持Python、JavaScript、C++、Java、Swift、R等语言调用。TensorFlow官网如图3-37所示。图3-37 TensorFlow官网