站长统计
主流深度学习框架及神经⽹络模型汇总
⼀、⼈⼯智能的研究领域和分⽀
image
⼆、主流深度学习框架
1.png
如果⾛学术路线,果断PyTorch,如果想⾛部署,TensorFLow+PaddlePaddle+Caffe。
1.TensorFlow
TensorFlow是Google开发的⼀款开源软件库,专为深度学习或⼈⼯神经⽹络⽽设计。TensorFlow允许你可以使⽤流程图创建神经⽹络和计算模型。它是可⽤于深度学习的最好维护和最为流⾏的开源库之⼀。TensorFlow框架可以使⽤C++也可以使⽤Python。你可以使⽤TensorBoard进⾏简单的可视化并查看计算流⽔线。其灵活的架构允许你轻松部署在不同类型的设备上。不利的⼀⾯是,TensorFlow没有符号循环,不⽀持分布
式学习。此外,它还不⽀持Windows。
出⽣地:Google
特点:计算图、分布式训练效果强、底层C构建速度快,⽣态强⼤
主要调包语⾔:Python、C/C++、JS
评价:对标PyTorch、学术界没市场了、部署更加的⽅便
⼊门推荐:建议做⼯程的⼩伙伴⼊门,学术界真的马上被PyTorch垄断
2.PyTorch
PyTorch是脸书的框架,前⾝是Torch,⽀持动态图,⽽且提供了Python接⼝。是⼀个以Python优先的深度学习框架,不仅能够实现强⼤的GPU加速,同时还⽀持动态神经⽹络。Python是现在学术界的霸主,对于想要做学术的同学绝对⾸推(重点)。
出⽣地:FaceBook
特点:⽣态强⼤、⼊门爽歪歪、代码量少(重点)
主要调包语⾔:Python、C/C++
评价:⼊门很快、速度有点慢、部署很垃圾、学术界的霸主
⼊门推荐:想要做学术的童鞋绝对⾸选,⼏乎现在顶会论⽂的代码都是这个框架写的,不过想要做部署的还是看看TensorFLow或者PaddlePaddle吧。
3.PaddlePaddle
PaddlePaddle是百度推出的深度学习框架,算是国⼈最⽕的深度学习框架了。跟新了2.0的⾼级API与动态图后,Paddle更加的强⼤。百度有很多PaddlePaddle的教程,对于初学者来说还是相当不错的。PaddlePaddle有很多便捷的⼯具,⽐如detection、cv、nlp、GAN的⼯具包,也有专门的可视化⼯具(远离tensorboard的⽀配)。
出⽣地:百度
特点:计算图动态图都⽀持、有⾼级API、速度快、部署⽅便、有专门的平台
主要调包语⾔:Python、C/C++、JS
⼊门推荐:如果没有卡那就⾮常适合,如果算⼒不缺,建议先看看PyTorch,当然也可以PaddlePaddle。
4.Keras
Keras可以当成⼀种⾼级API,它的后端可以是Theano和tensorFlow(可以想成把TF的很多打包了)。由于是⾼级API⾮常的⽅便,⾮常适合科研⼈员上⼿。
作者:Google AI 研究⼈员 Francois Chollet
特点:⽣态强⼤、⼊门爽歪歪、代码量少(重点)
主要调包语⾔:Python、C/C++、JS
评价:太适合⼊门了、速度有点慢、版本得匹配后端框架的版本
⼊门推荐:强推⼊门⾸选,但是后续⼀定要看看算法的底层是怎样⼯作的。
5.Caffe/Caffe2
Caffe是顶级⾼校UCB的贾扬清博⼠开发的,主要是适⽤于深度学习在计算机视觉的应⽤。使⽤Caffe做算法代码量很少,经常就是修修改改就能⽤,神经⽹络模型的管理⾮常的⽅便,⽽且算是⽐较早的部署在各种落地场景中。Caffe2可以理解为⼀个新版本的Caffe,但是有很多不
同,Caffe2后来并⼊了PyTorch。该⼯具⽀持Ubuntu,Mac OS X和Windows等操作系统。
作者:UCB 贾扬清博⼠
特点:计算图、部署⽅便、训练⽅便、cuDnn与MKL均⽀持
主要调包语⾔:Python、Matlab脚本、C++
评价:卷积⼈的⼤爱、环境不好配置、感觉偏底层、Caffe2还是PyTorch
⼊门推荐:不是很建议,真的想了解可以先⼊门PyTorch
6.MXNet
MXNet 是⼀个社区维护起来的深度学习框架,后来被亚马逊看上了。有类似于 Theano 和 TensorFlow 的计算图,也有灵活的动态图,摒弃有⾼级接⼝⽅便调⽤。MXNet的底层为C构建,优化的很好,很多推理框架都能直接转换,⾮常⽅便。
出⽣地:社区
特点:计算图动态图都⽀持、有⾼级API、速度快、部署⽅便
主要调包语⾔:Python、C/C++、JS(js⽤的相对少)
python新手代码大全pdf评价:⼀定意义上是国⼈的框架、⼩团体整的社区维护、⽂档少⽣态不⾏
⼊门推荐:⼀般。
7.Theano
Theano是07年左右开发的⼀个多维数组的计算库,⽀持GPU计算,当时很多⼈当成“⽀持GPU的Numpy”,底层优化的⾮常好,⽀持导出C的脚本。
出⽣地:蒙特利尔⼤学
特点:计算图、Python+Numpy、源于学术界
主要调包语⾔:Python
评价:很臃肿、不⽀持分布式、被后⾯的TensorFlow打击的很⼤
⼊门推荐:绝对不建议,真的要⽤的话,先学习别的框架再看Github就⾏了
8.Torch
Torch是⼀款针对ML算法且⼜简单易⽤的开源计算框架。该⼯具提供了⾼效的GPU⽀持,N维数组,数值优化例程,线性代数例程以及⽤于索引、切⽚和置换的例程。基于Lua的脚本语⾔,该⼯具带有⼤量预先训练好的模型。这款灵活⾼效的ML研究⼯具⽀持诸如Linux,Android,Mac OS X,iOS和Windows等主流平台。
9.CNTK
Microsoft Cognitive Toolkit是具有C#/C++/Python接⼝⽀持的最快的深度学习框架之⼀。此款开源框架带有强⼤的C++ API,⽐TensorFlow更快、更准确。该⼯具还⽀持内置数据读取器的分布式学习。它⽀持诸如前馈,CNN,RNN,LSTM和序列到序列等算法。该⼯具⽀持Windows和Linux。
出⽣地:微软
特点:⾮常严谨、语⾳上有⼀些优势、难度有点⾼
调包语⾔:C++、Python
评价:语⾳上不错呀、微软推不下去了、感觉不如TensorFlow、有点复古
⼊门推荐:不建议,看看就好。
10.ONNX
ONNX是⼀种针对机器学习所设计的开放式的⽂件格式,⽤于存储训练好的模型。它使得不同的⼈⼯智能框架(如Pytorch, MXNet)可以采⽤相同格式存储模型数据并交互。⽤⼤⽩话说就是是⼀个中间件,⽐如你PyTorch的模型想转换别的,就得通过ONNX,现在有的框架可以直接转,
主要调包语⾔:Python、C/C++、Java
⽀持模型:Keras、TensorFlow、ONNX
推荐平台:⼏乎所有的ARM处理器和微控制器(树莓派,甚⾄单⽚机)、TPU专享
⼊门推荐:TFboys(TensorFlow使⽤者)的必备,毕竟⼀条龙,还有机会了解TPU,⾮常贴⼼。
3.OpenVINO
OpenVINO是Intel的推理框架,⼀个超级强的推理部署⼯具。⼯具包中提供了很多便利的⼯具,例如OpenVINO提供了深度学习推理套件(DLDT),该套件可以将各种开源框架训练好的模型进⾏线上部署,除此之外,还包含了图⽚处理⼯具包OpenCV,视频处理⼯具包Media SDK。如果是针对Intel的加速棒或者⼯控机上部署真的是⾮常不错的。
出⽣地:Intel
特点:⾯向Intel设备的加速,便捷使⽤,安装和SDK很⽅便
主要调包语⾔:C/C++、Python
⽀持模型:TensorFlow、PyTorch、ONNX、MXNet、PaddlePaddle
推荐平台:⾃⼰的电脑、Intel神经⽹络加速棒、Intel的FPGA
⼊门推荐:作为⼊门的不啊还是不错的,只是落地场景有点少,毕竟现在是边缘设备的时代
因为⼯业上⼯控机多但是深度学习模型⽤的还是少,很多都是传统的算法,很多落地场景中上Intel的处理器并不占优势。
4.CoreML
CoreML是苹果公司推出针对ios以及macOS系统部署的机器学习平台,底层不开源。在苹果设备上,CoreML的速度是最快的,但是也只能⽤于苹果的设备上。现在开发apple app主要是Swift,受到Swift出的特性,真的是各种语⾔各种粘,很好⼊门。
出⽣地:Apple
特点:⾯向苹果设备,专业设备上速度第⼀,稳定、⼊门简单
主要调包语⾔:C/C++、Python、Obj-C、Swift
⽀持模型:TensorFlow、ONNX、PyTorch、ONNX、MXNet、Caffe
推荐平台:iMac、MacBook、iPhone、iPad、AppleWatch
⼊门推荐:针对Apple的开发者,业余选⼿得买个MBP
5.NCNN
NCNN是腾讯推出的推理框架,⼀定意义上是之前使⽤⾮常⼴的⼀个推理框架,社区做的也⾮常棒。NCNN的速度是超过TFLite的,但是有点⿇烦的是之前得经常⾃⼰⽤C去复现⼀些算⼦(框架起步都这样),现在因为使⽤的⼈数很多,因此算⼦很多。NCNN对于X86、GPU均有⽀持,在嵌⼊式、⼿机上的表现⾮常好。
出⽣地:腾讯优图实验室
特点:⾯向移动端的加速、⼿机处理器的加速单元⽀持很棒
主要调包语⾔:C/C++、Python
⽀持模型:TensorFlow、ONNX、PyTorch、ONNX、MXNet、DarkNet、Caffe
推荐平台:安卓/苹果⼿机、ARM处理器设备
⼊门推荐:对于嵌⼊式或者APP开发有经验的同学绝对⾸推的
6.MNN
MNN是阿⾥巴巴推出的移动端框架,现在也⽀持模型训练,⽀持OpenCL,OpenGL,Vulkan和Metal等。同样的设备,MNN的部署速度是⾮

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。