找回密码
 立即注册
查看: 228|回复: 0

8种主流深度学习框架介绍

[复制链接]

1

主题

1

回帖

17

积分

新手上路

积分
17
发表于 2023-5-12 08:59:37 | 显示全部楼层 |阅读模式












下面开始对各框架进行概述,让读者对各个框架有个简单的认知,具体的安装及使用方式不在本文赘述。

01 TensorFlow



谷歌的TensorFlow可以说是当今最受欢迎的开源深度学习框架,可用于各类深度学习相关的任务中。TensorFlow = Tensor + Flow,Tensor就是张量,代表N维数组;Flow即流,代表基于数据流图的计算。
TensorFlow是目前深度学习的主流框架,其主要特性如下所述。

  • TensorFlow撑持Python、JavaScript、C ++、Java、Go、C#、Julia和R等多种编程语言。
  • TensorFlow不仅拥有强大的计算集群,还可以在iOS和Android等移动平台上运行模型。
  • TensorFlow编程入门难度较大。初学者需要仔细考虑神经网络的架构,正确评估输入和输出数据的维度和数量。
  • TensorFlow使用静态计算图进行操作。也就是说,我们需要先定义图形,然后运行计算,如果我们需要对架构进行更改,则需要从头训练模型。选择这样的方式是为了提高效率,但是许多现代神经网络东西已经能够在学习过程中改良,而且不会显著降低学习速度。在这方面,TensorFlow的主要竞争对手是PyTorch。

RStudio提供了R与TensorFlow的API接口,RStudio官网及GitHub上也提供了TensorFlow扩展包的学习资料。


02 Keras



Keras是一个对小白用户非常友好且简单的深度学习框架。如果想快速入门深度学习, Keras将是不错的选择。
Keras是TensorFlow高级集成API,可以非常便利地和TensorFlow进行融合。Keras在高层可以调用TensorFlow、CNTK、Theano,还有更多优秀的库也在被陆续撑持中。Keras的特点是能够快速搭建模型,是高效地进行科学研究的关键。
Keras的基本特性如下:

  • 高度模块化,搭建网络非常简洁;
  • API简单,具有统一的风格;
  • 易扩展,易于添加新模块,只需要仿照现有模块编写新的类或函数即可。

RStudio提供了R与Keras的API接口,RStudio的官网及GitHub上也提供了Keras扩展包的学习资料。


03 Caffe



Caffe是由AI科学家贾扬清在加州大学伯克利分校读博期间主导开发的,是以C++/CUDA代码为主的早期深度学习框架之一,比TensorFlow、MXNet、PyTorch等都要早。Caffe需要进行编译安装,撑持命令行、Python和Matlab接口,单机多卡、多机多卡等都可以很便利使用。
Caffe的基本特性如下。

  • 以C++/CUDA/Python代码为主,速度快,性能高。
  • 工厂设计模式,代码布局清晰,可读性和可拓展性强。
  • 撑持命令行、Python和Matlab接口,使用便利。
  • CPU和GPU之间切换便利,多GPU训练便利。
  • 东西丰硕,社区活跃。

同时,Caffe的错误谬误也斗劲明显,主要包罗如下几点。

  • 源代码改削门槛较高,需要实现正向/反向传布。
  • 不撑持自动求导。
  • 不撑持模型级并行,只撑持数据级并行。
  • 不适合非图像任务。

虽然Caffe已经提供了Matlab和Python接口,但目前不撑持R语言。caffeR为Caffe提供了一系列封装功能,允许用户在R语言上运行Caffe,包罗数据预措置和网络设置,以及监控和评估训练过程。该包还没有CRAN版本,感兴趣的读者可以在GitHub找到caffeR包的安装及使用的相关内容。
https://github.com/cnaumzik/caffeR

04 PyTorch



PyTorch是Facebook团队于2017年1月发布的一个深度学习框架,虽然晚于TensorFlow、Keras等框架,但自发布之日起,其受到的存眷度就在不竭上升,目前在GitHub上的热度已经超过Theano、Caffe、MXNet等框架。
PyTroch主要提供以下两种核心功能:

  • 撑持GPU加速的张量计算;
  • 便利优化模型的自动微分机制。

PyTorch的主要长处如下。

  • 简洁易懂:PyTorch的API设计相当简洁一致,基本上是tensor、autograd、nn三级封装,学习起来非常容易。
  • 便于调试:PyTorch采用动态图,可以像普通Python代码一样进行调试。分歧于TensorFlow,PyTorch的报错说明凡是很容易看懂。
  • 强大高效:PyTorch提供了非常丰硕的模型组件,可以快速实现想法。


05 Theano



Theano诞生于2008年,由蒙特利尔大学的LISA尝试室开发并维护,是一个高性能的符号计算及深度学习框架。它完全基于Python,专门用于对数学表达式的定义、求值与优化。得益于对GU的透明使用,Theano尤其适用于包含高维度数组的数学表达式,而且计算效率斗劲高。
因Theano呈现的时间较早,后来涌现出一批基于Theano的深度学习库,并完成了对Theano的上层封装以及功能扩展。在这些派生库中,斗劲著名的就是本书要学习的Keras。Keras将一些基本的组件封装成模块,使得用户在编写、调试以及阅读网络代码时更加清晰。

06 CNTK



CNTK(Microsoft Cognitive Toolkit)是微软开源的深度学习东西包,它通过有向图将神经网络描述为一系列计算法式。在有向图中,叶节点暗示输入值或网络参数,其他节点暗示其输入上的矩阵运算。
CNTK允许用户非常轻松地实现和组合风行的模型,包罗前馈神经网络(DNN)、卷积神经网络(CNN)和循环神经网络(RNN、LSTM)。与目前大部门框架一样,CNTK实现了自动求导,操作随机梯度下降方式进行优化。
CNTK的基本特性如下。

  • CNTK性能较好,按照其官方的说法,它比其他的开源框架性能都要好。
  • 适合做语音任务,CNTK本就是微软语音团队开源的,自然更适合做语音任务,便于在使用RNN等模型以及时空尺度时进行卷积。

微软开发的CNTK-R包提供了R与CNTK的API接口。感兴趣的读者可以通过以下网址进行学习。


07 MXNet



MXNet框架允许混合符号和命令式编程,以最大限度地提高效率和出产力。MXNet的核心是一个动态依赖调剂法式,可以动态地自动并行化符号和命令操作。其图形优化层使符号执行更快,内存效率更高。
MXNet的基本特性如下。

  • 灵活的编程模型:撑持命令式和符号式编程模型。
  • 多语言撑持:撑持C++、Python、R、Julia、JavaScript、Scala、Go、Perl等。事实上,它是独一撑持所有R函数的构架。
  • 当地分布式训练:撑持在多CPU/GPU设备上的分布式训练,使其可充实操作云计算的规模优势。
  • 性能优化:使用一个优化的C++后端引擎实现并行I/O和计算,无论使用哪种语言都能达到最佳性能。
  • 云端友好:可直接与S3、HDFS和Azure兼容。


08 ONNX



ONNX(Open Neural Network eXchange,开放神经网络交换)项目由微软、亚马逊、Facebook和IBM等公司共同开发,旨在寻找呈现开放格式的深度学习模型。ONNX简化了在人工智能分歧工作方式之间传递模型的过程,具有各种深度学习框架的长处。
ONNX的基本特性如下。

  • ONNX使模型能够在一个框架中进行训练并转移到另一个框架中进行预测。
  • ONNX模型目前在Caffe2、CNTK、MXNet和PyTorch中得到撑持,而且还有与其他常见框架和库的连接器。

onnx-r包提供了R与ONNX的API接口。感兴趣的读者可以通过以下网址进行学习。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|T9AI - 深度人工智能平台 ( 沪ICP备2023010006号 )

GMT+8, 2024-5-21 15:47 , Processed in 0.060520 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表