深度学习主流框架介绍(PyTorch、TensorFlow、Keras、Caffe、Theano、MXNET)

1.Theano

Theano是最早的深度学习框架之一,由 Yoshua Bengio 和 Ian Goodfellow 等人开发,是一个基于 Python 语言、定位底层运算的计算库,Theano 同时支持 GPU 和 CPU 运算。由于 Theano 开发效率较低,模型编译时间较长,同时开发人员转投 TensorFlow等原因,Theano 目前已经停止维护。

2.Scikit-learn

Scikit-learn是一个完整的面向机器学习算法的计算库,内建了常见的传统机器学习算法支持,文档和案例也较为丰富,但是 Scikit-learn 并不是专门面向神经网络而设计的,不支持 GPU 加速,对神经网络相关层实现也较欠缺。

3.Caffe

Caffe 由华人博士贾扬清在 2013 年开发,主要面向使用卷积神经网络的应用场合,并不适合其他类型的神经网络的应用。Caffe 的主要开发语言是 C++,也提供 Python 语言等接口,支持 GPU 和 CPU。由于开发时间较早,在业界的知名度较高,2017年Facebook 推出了 Caffe 的升级版本 Cafffe2,Caffe2 目前已经融入到 PyTorch 库中。Torch 是一个非常优秀的科学计算库,基于较冷门的编程语言 Lua 开发。Torch 灵活性较高,容易实现自定义网络层,这也是 PyTorch 继承获得的优良基因。但是由于 Lua 语言使用人群较小,Torch 一直未能获得主流应用。

4.MXNET

MXNET由华人博士陈天奇和李沐等人开发,已经是亚马逊公司的官方深度学习框架。采用了命令式编程和符号式编程混合方式,灵活性高,运行速度快,文档和案例也较为丰富。

5.PyTorch

PyTorch是 Facebook 基于原有的 Torch 框架推出的采用 Python 作为主要开发语言的深度学习框架。PyTorch 借鉴了 Chainer 的设计风格,采用命令式编程,使得搭建网络和调试网络非常方便。尽管 PyTorch 在 2017 年才发布,但是由于精良紧凑的接口设计,PyTorch 在学术界获得了广泛好评。在 PyTorch 1.0 版本后,原来的 PyTorch 与 Caffe2进行了合并,弥补了 PyTorch 在工业部署方面的不足。总的来说,PyTorch 是一个非常优秀的深度学习框架。

6.Keras

Keras是一个基于 Theano 和 TensorFlow 等框架提供的底层运算而实现的高层框架,提供了大量方便快速训练,测试的高层接口,对于常见应用来说,使用 Keras 开发效率非常高。但是由于没有底层实现,需要对底层框架进行抽象,运行效率不高,灵活性一般。

7.TensorFlow

TensorFlow是 Google 于 2015 年发布的深度学习框架,最初版本只支持符号式编程。得益于发布时间较早,以及Google在深度学习领域的影响力,TensorFlow 很快成为最流行的深度学习框架。但是由于 TensorFlow 接口设计频繁变动,功能设计重复冗余,符号式编程开发和调试非常困难等问题,TensorFlow 1.x 版本一度被业界诟病。2019年,Google 推出 TensorFlow 2 正式版本,将以动态图优先模式运行,从而能够避免TensorFlow 1.x 版本的诸多缺陷,已获得业界的广泛认可。

小结

目前来看,TensorFlow 和 PyTorch 框架是业界使用最为广泛的两个深度学习框架, TensorFlow在工业界拥有完备的解决方案和用户基础,PyTorch 得益于其精简灵活的接口设计,可以快速设计调试网络模型,在学术界获得好评如潮。TensorFlow 2发布后,弥补了TensorFlow 在上手难度方面的不足,使得用户可以既能轻松上手TensorFlow框架,又能无缝部署网络模型至工业系统。

更多文章请搜索公众号“StrongerTang”,众多资料分享,一起学习!

深度学习主流框架介绍(PyTorch、TensorFlow、Keras、Caffe、Theano、MXNET)相关推荐

  1. Karpathy更新深度学习开源框架排名:TensorFlow第一,PyTorch第二

    上周,Keras作者.谷歌研究科学家François Chollet晒出一张图,他使用Google Search Index,展示了过去三个月,ArXiv上提到的深度学习框架排行,新智元也做了报道: ...

  2. [深度学习主流框架解析一] Caffe

    [深度学习主流框架解析一] Caffe 1.模型文件协议解析 重点解析caffe.proto模型文件中的内容,整体的模型文件可见下图. 模型结构相关特性: 含有训练和测试推理的开关和相关的必要参数 不 ...

  3. [深度学习主流框架解析一] Onnx

    [深度学习主流框架解析一] Onnx 1.模型文件协议解析 Onnx同样也是采用了Protobuf协议进行模型文件的整体构建,与Caffe相比,Onnx使用了多proto文件描述模型.因此,解析Onn ...

  4. MNN通用端侧深度学习预测框架介绍

    最近端侧的AI模型应用越来越广泛,在端侧的模型应用会面对很多的问题,比如模型适配性和机型适配性,还有计算性能方面的问题.是否有某种框架可以解决这些端侧AI模型遇到的问题,Google.苹果等公司都有相 ...

  5. Facebook开源移动端深度学习加速框架,比TensorFlow Lite快一倍

    方栗子 发自 凹非寺 量子位 出品 | 公众号 QbitAI Facebook发布了一个开源框架,叫QNNPACK,是手机端神经网络计算的加速包. 官方表示,它可以成倍提升神经网络的推理效率,几乎比T ...

  6. 12大深度学习开源框架(caffe,tensorflow,pytorch,mxnet等)汇总详解

    这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpeng2008/yousa ...

  7. TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比

    2019独角兽企业重金招聘Python工程师标准>>> TensorFlow和Caffe.MXNet.Keras等其他深度学习框架的对比 博客分类: 深度学习 Google 近日发布 ...

  8. 检验 pytorch,tensorflow,paddle,mxnet 深度学习框架是否正确支持GPU功能

    检验 pytorch,tensorflow,paddle,mxnet 深度学习框架是否正确支持GPU功能 1.pytorch 框架 import torch a = torch.cuda.is_ava ...

  9. 【github干货】主流深度学习开源框架从入门到熟练

    文章首发于微信公众号<有三AI> [github干货]主流深度学习开源框架从入门到熟练 今天送上有三AI学院第一个github项目 01项目背景 目前深度学习框架呈百家争鸣之态势,光是为人 ...

最新文章

  1. 逻辑回归(Logistic Regression)简介及C++实现
  2. Facebook的首席技术官:人工智能已用于内容审核,未来会做更多
  3. 【CC November Challenge 2012】Arithmetic Progressions【分块】【FFT】
  4. linux命令行可以看图片吗,活久见!Linux命令行居然也可以用来查看图像?
  5. 陈大惠老师:什么叫道德?
  6. 国行 iPhone 12/Pro/Max双卡模式支持5G网络;支付宝推出「晚点付」功能;MySQL 8.0.22 GA|极客头条
  7. Ubuntu使用tcpdump工具
  8. Android开发网络连接超时
  9. 移动零售批发行业新的技术特色-智能PDA手持移动扫描打印销售开单收银仪!!...
  10. list转json的时候,关于date转换的问题
  11. 仿知乎客户端的白天黑夜主题切换
  12. Android 网页无法访问
  13. ISCC2021——web部分
  14. Android判断有无外置SD卡(TF卡),并读写文件
  15. HTTP响应头使用X-Content-Options、X-XSS-Protection、X-Frame-Options
  16. WiFi认证是如何保证企业WiFi的安全?
  17. 华为畅享10s值得买吗_达人解析华为畅享 10S好不好用?怎么样呢?真相揭秘必看...
  18. 记录一次拯救jenkins的历程
  19. Java基础——高级
  20. oracle旬统计,oracle获取上一旬的开始时间和结束时间的函数

热门文章

  1. js获取jsp上下文地址
  2. PKU 3013 Big Christmas Tree 最短路 spfa
  3. 项目开发中自定义字段设计原则
  4. android菜单详解二:选项菜单
  5. OneNote中到底能放多少种东西?
  6. JAVA基础知识(五)数据类型转换
  7. MySQL 5.7--多源复制(非GTID模式)
  8. 2018.10.26多校
  9. javascript 容错处理代码(屏蔽js错误)
  10. 关于线程中断的3个重要方法总结