[人工智能-综述-4]:主流深度学习框架比较排名

文火冰糖的硅基工坊 文火冰糖的硅基工坊     2022-12-11     235

关键词:

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119064857


目录

第1部分 主流深度学习框架比较

1.1 使用排名

1.2 综合比较 

第2部分 深度学习框架概述

2.1 Tensorflow

2.2 Keras

2.3 Pytorch

2.4 Paddle Paddle 

2.5 Caffe

2.6 MxNet

第3部分 个人感受与建议


第1部分 主流深度学习框架比较

不同的人,深度学习的框架使用感受是不一样的。

不同时期,深度学习的框架排行榜的顺序也不一样。

列出的下面各种比较,没有标准答案,仅供参考。

1.1 使用排名

上述排名前三的为:

Tensorflow(谷歌)、Pytorch(苹果)、Paddlepaddle(百度)

1.2 综合比较 

第2部分 深度学习框架概述

2.1 Tensorflow

当进入AI时,你会听到的第一个框架之一就是Google的TensorFlow。

TensorFlow是 谷歌基于DistBelief进行研发的第二代 人工智能 学习系统,其命名来源于本身的运行原理。

Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。

TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。

TensorFlow编程接口支持Python、C++、Java、Go、R和Haskell API的alpha版本。此外,TensorFlow还可在GoogleCloud和AWS中运行。TensorFlow还支持 Windows 7、Windows 10和Windows Server 2016。由于TensorFlow使用C++ Eigen库,所以库可在ARM架构上编译和优化。这也就意味着用户可以在各种服务器和移动设备上部署自己的训练模型,无须执行单独的模型解码器或者加载Python解释器。

TensorFlow构建了活跃的社区,完善的文档体系,大大降低了我们的学习成本,不过社区和文档主要以英文为主,中文支持有待加强。另外,TensorFlow有很直观的计算图可视化呈现。模型能够快速的部署在各种硬件机器上,从高性能的计算机到移动设备,再到更小的更轻量的智能终端。

不过,对于深度学习的初学者而言,TensorFlow的学习曲线太过陡峭,直接使用底层的深度学习的API,需要不断练习、探索社区并继续阅读文章来掌握TensorFlow的诀窍, 入门的门槛较高。

为了克服Tensorflow的上述缺点,初学者可以使用Keras。

2.2 Keras

Keras被认为是最酷的Python深度学习库之一。

如果你是深度学习开发方面的新手,那么非常建议你使用它。它提供了非常简明的机制来表达神经网络结构。它也提供了许多非常棒的工具用于神经网络模型的编译、数据的处理、以及网络结构的可视化等等。

Keras本质上是对Tensorflow、Theano等基础框架作进一步的封装,以提供统一的、简化的API来简化神经网络的构建与训练。

2.3 Pytorch

Pytorch是基于用Lua编写的Torch库的Python实现的深度学习库,它由Facebook创建,目前被广泛应用于学术界和工业界,随着Caffe2项目并入Pytorch,也稳固了Pytorch紧追并迫近TensorFlow在深度学习应用框架领域的地位。

Pytorch官网的标题语简明的描述了目前Pytorch的特点以及将要发力的方向。

Pytorch在学术界优势很大,关于用到深度学习模型的文章,除了Google家的,其他大部分都是通过Pytorch进行实验的,究其原因:

一、是Pytorch库足够简单,跟NumPy,SciPy等可以无缝连接,而且基于tensor的GPU加速非常给力,

二、是训练网络迭代的核心-梯度的计算,Autograd架构(借鉴于Chainer),在Pytorch,我们可以动态的设计网络,而无需笨拙的定义静态网络图,才能去进行计算,想要对网络有任务修改,都要从头开始构建静态图。

基于简单,灵活的设计,Pytorch快速成为了学术界的主流深度学习框架。

Pytorch的劣势在于模型部署,由于对其部署难度早有耳闻,一般是在Pytorch快速的试验新的模型,确认好的效果再去找“现成的”的TensorFlow模型做简单的优化。

不过现在,如果稍微深入的了解TensorFlowPytorch,就会发现他们越来越像:TF加入了动态图架构,Pytorch致力于其在工业界更加易用。打开各自的官网,你也会发现文档风格也越发的相似。
 

2.4 Paddle Paddle 

PaddlePaddle是由百度自主开发的开源深度学习框架,近期发现有了中文名字,飞桨。

官网截图也很有意思,很多小人在划桨。飞桨刚发布的时候,并不被看好,感觉更像是Google有,百度也要有的腔调。功能上,飞桨同时支持动态图和静态图,能方便的调试模型,方便的部署,非常适合业务应用的落地实现。飞桨也已经支持数百个节点的高效并行训练。可以说在过去几年的时间里,深度学习领域在大规模的落地应用,各家框架也都在快速的发展,但是百度的PaddlePaddle看来是这个阶段发展更快的框架,甚至是发展更快的AI开发生态。

以上三个框架可以说是目前发展比较快的,并且在稳定更新,维护的。功能上来说,各框架已经“越长越像”了,三个框架还是会有各自的特点,如何选择还是要根据自己的目标来看。
 

2.5 Caffe

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

Caffe来自与学院派,重在专业性,因此在可用性方面和通用性方面有点欠缺。

Caffe 最老牌的框架之一,而是老牌中的老牌。 Caffe 有非常好的特性,但也有一些小缺点。起初的时候它并不是一个通用框架,而仅仅关注计算机视觉。

Caffe 的缺点是它不够灵活。如果你想给它来一点新改变,那你就需要使用 C++ 和 CUDA 编程,不过你也可以使用 Python 或 Matlab 接口进行一些小改变。 Caffe 的文档非常贫乏。你需要花大量时间检查代码才能理解它,Caffe 的最大缺点之一是它的安装。它需要解决大量的依赖包。

但要Caffe 并不是一无是处。在投入了生产的计算机视觉系统的工具上,Caffe 是无可争议的领导者。它非常稳健非常快速。如果真想用Caffe,建议先用 Keras 进行实验和测试,然后迁移到 Caffe 中进行生产。

2.6 MxNet

MXNet 是亚马逊(Amazon) [2]  选择的深度学习库。它拥有类似于 Theano 和 TensorFlow 的数据流图,为多 GPU 配置提供了良好的配置,有着类似于 Lasagne 和 Blocks 更高级别的模型构建块,并且可以在你可以想象的任何硬件上运行(包括手机)。对 Python 的支持只是其冰山一角—MXNet 同样提供了对 R、Julia、C++、Scala、Matlab,和 Javascript 的接口

MXNet 是一款设计为效率和灵活性的深度学习框架。它允许你混合符号编程和命令式编程,从而最大限度提高效率和生产力。在其核心是一个动态的依赖调度,它能够自动并行符号和命令的操作。

有一个图形优化层,使得符号执行速度快,内存使用高效。这个库便携,轻量,而且能够扩展到多个 GPU 和多台机器。

第3部分 个人感受与建议

对于初学者,建议在Tensorflow(谷歌)+ Keras、Pytorch(苹果)、Paddlepaddle(百度)三者中进行选择。

Tensorflow,排名第一,直接使用底层的API,对于喜欢专研的同学来说,是第一选择。但入门门槛较高,使用难度大,如果想简化入门时的使用,建议Tensorflow(谷歌)+ Keras。Keras对Tensorflow底层的API进行了封装。或者选项如下两个平台。

Pytorch使用简单,运行速度也快,也是一个不错的选择。

Paddlepaddle,国产深度学习第一大框架,对于不喜欢英文的同学是一大福音。

当然,平台的选择,还受到周围同事使用的平台的影响,主要是遇到问题时,便于面对面探讨。

对于没有用于训练的GPU平台的同学来讲,选择Paddlepaddle也是一个不错的选择,百度提供了远程的、国内访问的云平台。


作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119064857

[人工智能-综述-4]:白话深度学习--无基础小白都能理解机器学习的核心概念

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119191407目录摘要:前言:第1部分.没有“机器学习”能力的机器是什么样子的? 第2部分.有了学习... 查看详情

综述|深度学习编译器

点上方人工智能算法与Python大数据获取更多干货在右上方 ··· 设为星标 ★,第一时间获取资源仅做学术分享,如有侵权,联系删除转载于:专知近年来深度学习芯片的研究发展是业界关注的焦点。学术业界一... 查看详情

综述|深度学习编译器

点上方人工智能算法与Python大数据获取更多干货在右上方 ··· 设为星标 ★,第一时间获取资源仅做学术分享,如有侵权,联系删除转载于:专知近年来深度学习芯片的研究发展是业界关注的焦点。学术业界一... 查看详情

适用于深度学习的高性能系统架构综述

...域的研究热点之一,取得了一定的研究和应用成果。回顾人工智能发展史,早在上世纪80年代末期,GeoffreyHinton等人便提出深度学习的方法,并且在数字手写体的识别问题方面取得 查看详情

图像识别深度学习主流方案平台比较

...业为例,由于医疗保健行业大量使用大数据及嵌入式人工智能,进而精准改善疾病诊断、医疗人员与患者之间人力的不平衡、降低医疗成本、促进跨行业合作关系。此外嵌入式人工智能还广泛应用于临床试验、大型医疗... 查看详情

tensorflow与主流深度学习框架对比

引言:AlphaGo在2017年年初化身Master,在弈城和野狐等平台上横扫中日韩围棋高手,取得60连胜,未尝败绩。AlphaGo背后神秘的推动力就是TensorFlow——Google于2015年11月开源的机器学习及深度学习框架。 TensorFlow在2015年年底一出现... 查看详情

深度学习在视频多目标跟踪中的应用综述

文章目录摘要1、简介2、MOT:算法、指标和数据集2.1、MOT算法简介2.2、指标经典的指标完整的MOT指标ID分数2.3、基准数据集3、MOT中的深度学习3.1、深度学习中的检测步骤3.1.1、FasterR-CNN3.1.2、SSD3.1.3、Otherdetectors3.1.4、cnn在检测步骤中... 查看详情

深度学习在视频多目标跟踪中的应用综述

文章目录摘要1、简介2、MOT:算法、指标和数据集2.1、MOT算法简介2.2、指标经典的指标完整的MOT指标ID分数2.3、基准数据集3、MOT中的深度学习3.1、深度学习中的检测步骤3.1.1、FasterR-CNN3.1.2、SSD3.1.3、Otherdetectors3.1.4、cnn在检测步骤中... 查看详情

深度学习前言综述

...f0c;感兴趣的朋友可以看看!本书的章节安排结构如下人工智能人工智能(AI)是一个具有许多实际应用和活跃研究课题的领域,并蓬勃发展着。我们指望通过智能软件自动化处理常规劳动、理解语音或图像、帮助医学诊断和... 查看详情

综述|多智能体深度强化学习

点上方人工智能算法与Python大数据获取更多干货在右上方 ··· 设为星标 ★,第一时间获取资源仅做学术分享,如有侵权,联系删除转载于:专知【论文标题】多智能体深度强化学习:综述Multi-agentdeepreinforc... 查看详情

综述|多智能体深度强化学习

点上方人工智能算法与Python大数据获取更多干货在右上方 ··· 设为星标 ★,第一时间获取资源仅做学术分享,如有侵权,联系删除转载于:专知【论文标题】多智能体深度强化学习:综述Multi-agentdeepreinforc... 查看详情

主流的深度学习框架基本知识

本章内容1、TensorFlow2、Keras3、MXNet4、CNTK5、PyTorch 常见的深度学习框架常见的深度学习框架有TensorFlow、Caffe、Theano、Keras、PyTorch、MXNet等,如下图所示。这些深度学习框架被应用于计算机视觉、语音识别、自然语言处理与生物... 查看详情

[人工智能-综述-8]:为什么说,人工智能的入门学习可以从“深度学习”开始

...xff1a;https://blog.csdn.net/HiWangWenBing/article/details/119215267目录1.人工智能、机器学习、深度学习的关系2.为什么选择从“深度学习”入手人工智能2.1深度学习是三个概念中最小的概念2.2 入手相对于机 查看详情

新鲜出炉!大规模神经网络最新综述!

...xff0c;还分析了一些实现这些技术的框架。现代深度学习和人工智能技术的发展涉及使用深度神经网络(DNN)来解决图像、视频、音频、自然语言处理、图像形式的内容生成等各种问题 查看详情

目标跟踪综述(主要是深度学习)

摘要近年来,深度学习方法在物体跟踪领域有不少成功应用,并逐渐在性能上超越传统方法。本文对现有基于深度学习的目标跟踪算法进行了分类梳理。经典的目标跟踪方法目前跟踪算法可以被分为产生式(generativemodel)和判别式(... 查看详情

人工智能中卷积神经网络基本原理综述

人工智能ArtificialIntelligence中卷积神经网络ConvolutionalNeuralNetwork基本原理综述人工智能(ArtificialIntelligence,简称AI)的DeepLearning(深度学习)通过机器学习,把某一层的输出output当做下一层的输入input。在人工智能中,认为output是... 查看详情

主流机器学习平台调研与对比分析

...4.2 对比分析引入:机器学习平台简介随着大数据、人工智能的火热&# 查看详情

人工智能与算法学习(11月月刊)

人工智能与算法学习(11月月刊)LonelyWhistlerBandari-Mistyland今天出一期月刊,将近一个月的文章整理给大家,方便大家学习和回顾。Python34个最优秀好用的Python开源框架机器学习机器学习练习数据哪里找?两行代码搞定!2.机器学... 查看详情