文档章节

深度学习框架的介绍与比较(Caffe, TensorFlow, MXNet, Torch, Theano)

MtrS
 MtrS
发布于 2016/12/10 10:34
字数 872
阅读 198
收藏 1

标签: 深度学习deep learning框架caffetorch 2016-06-22 14:57 7112人阅读 评论(0) 收藏 举报 分类: deep learning(1)

版权声明:本文为博主原创文章,未经博主允许不得转载。

在这里,我将会介绍当前比较主流的5种深度学习框架,包括 Caffe, TensorFlow, MXNet, Torch, Theano,并对这些框架进行分析。

首先对这些框架进行总览。

库名称

开发语言

速度

灵活性

文档

适合模型

平台

上手难易

Caffe

c++/cuda

一般

全面

CNN

所有系统

中等

TensorFlow

c++/cuda/Python

中等

中等

CNN/RNN

Linux, OSX

MXNet

c++/cuda

全面

CNN

所有系统

中等

Torch

c/lua/cuda

全面

CNN/RNN

Linux, OSX

中等

Theano

python/c++/cuda

中等

中等

CNN/RNN

Linux, OSX

接下来将对这些框架进行分别介绍。

Caffe 第一个主流的工业级深度学习工具。 它开始于2013年底,由UC Berkely的Yangqing Jia老师编写和维护的具有出色的卷积神经网络实现。在计算机视觉领域Caffe依然是最流行的工具包。 它有很多扩展,但是由于一些遗留的架构问题,不够灵活且对递归网络和语言建模的支持很差。

TensorFlow Google开源的其第二代深度学习技术——被使用在Google搜索、图像识别以及邮箱的深度学习框架。 是一个理想的RNN(递归神经网络)API和实现,TensorFlow使用了向量运算的符号图方法,使得新网络的指定变得相当容易,支持快速开发。 缺点是速度慢,内存占用较大。(比如相对于Torch)

MXNet 是李沐和陈天奇等各路英雄豪杰打造的开源深度学习框架,是分布式机器学习通用工具包DMLC 的重要组成部分。 它注重灵活性和效率,文档也非常的详细,同时强调提高内存使用的效率,甚至能在智能手机上运行诸如图像识别等任务。

Torch Facebook力推的深度学习框架,主要开发语言是C和Lua。 有较好的灵活性和速度。 它实现并且优化了基本的计算单元,使用者可以很简单地在此基础上实现自己的算法,不用浪费精力在计算优化上面。核心的计算单元使用C或者cuda做了很好的优化。在此基础之上,使用lua构建了常见的模型。 缺点是接口为lua语言,需要一点时间来学习。

Theano 2008年诞生于蒙特利尔理工学院,主要开发语言是Python。 Theano派生出了大量深度学习Python软件包,最著名的包括Blocks和Keras。 Theano的最大特点是非常的灵活,适合做学术研究的实验,且对递归网络和语言建模有较好的支持,缺点是速度较慢。

参考 深度学习框架的评估与比较 http://www.infoq.com/cn/news/2016/01/evaluation-comparison-deep-learn Caffe、TensorFlow、MXnet三个开源库对比 http://chenrudan.github.io/blog/2015/11/18/comparethreeopenlib.html CVPR 2015深度学习回顾:ConvNet、Caffe、Torch及其他 http://www.csdn.net/article/1970-01-01/2825395 torch7怎么样?和theano和caffe相比如何?顺便问下实现cnn麻烦吗? https://www.zhihu.com/question/34789475 深度学习简析,TensorFlow,Torch,Theano,Mxn http://lchiffon.github.io/2015/11/16/long.html

© 著作权归作者所有

共有 人打赏支持
MtrS
粉丝 31
博文 553
码字总数 352611
作品 0
榆林
私信 提问
Github 最受欢迎的深度学习项目 TOP 20

必须做好一些是LINUX平台,甚至没有教材根本需要摸索学习的准备,如果有那个变成为在线服务的请第一时间通知我们 截止到 2017年 5月14日,Github 最受欢迎的深度学习项目 TOP 20 是哪些吧(统...

wotacid
2017/05/23
0
0
云上深度学习实践(二)-云上MXNet实践

目录 云上深度学习实践(一)-GPU云服务器TensorFlow单机多卡训练性能实践 云上深度学习实践(二)-云上MXNet实践 1 MXNet 简介 1.1 MXNet特点 MXNet是一个全功能,灵活可编程和高扩展性的深...

撷峰
07/13
0
0
基于 Keras 对深度学习模型进行微调的全面指南 Part 1

雷锋网按:本文为AI研习社编译的技术博客,原标题 A Comprehensive guide to Fine-tuning Deep Learning Models in Keras (Part I),作者为 Felix Yu 。 翻译 | 杨东旭 校对 | 孟凡 整理 ...

雷锋字幕组
08/13
0
0
【写作人才】国家一级出版社招聘 机器学习/深度学习/AI/算法/研发/MXNet框架等兼职写作人员

各位hellobi的兄弟们,大家好。 本社要推出一套基于机器学习/深度学习/AI/算法/研发的书籍,特面向论坛招聘特约写作人员,稿酬丰厚。 要求: 1、有2年以上当前项目的实战经验。 2、有每天3个...

bookred
06/06
0
0
mxnet使用mxboard实现网络和训练过程可视化

版权声明:原创文章如需转载,请在左侧博主描述栏目扫码联系我并取得授权,谢谢 https://blog.csdn.net/u012234115/article/details/80736531 mxnet作为一个强大的机器学习工具,一直缺乏像t...

踏莎行hyx
06/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊storm的AggregateProcessor的execute及finishBatch方法

序 本文主要研究一下storm的AggregateProcessor的execute及finishBatch方法 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout......

go4it
41分钟前
1
0
大数据教程(7.5)hadoop中内置rpc框架的使用教程

博主上一篇博客分享了hadoop客户端java API的使用,本章节带领小伙伴们一起来体验下hadoop的内置rpc框架。首先,由于hadoop的内置rpc框架的设计目的是为了内部的组件提供rpc访问的功能,并不...

em_aaron
今天
1
0
CentOS7+git+github创建Python开发环境

1.准备CentOS7 (1)下载VMware Workstation https://pan.baidu.com/s/1miFU8mk (2)下载CentOS7镜像 https://mirrors.aliyun.com/centos/ (3)安装CentOS7系统 http://blog.51cto.com/fengyuns......

枫叶云
昨天
1
0
利用ibeetl 实现selectpicker 的三级联动

1. js 直接写在html页面上面,ibeetl 就可以动态地利用后台传上来的model List ,不需要每次点击都要ajax请求后台 2. 使用selectpicker 的时候,除了对selecct option的动态处理后,还需要 $("#...

donald121
昨天
1
0
Android SELinux avc dennied权限问题解决方法

1. 概述 SELinux是Google从android 5.0开始,强制引入的一套非常严格的权限管理机制,主要用于增强系统的安全性。 然而,在开发中,我们经常会遇到由于SELinux造成的各种权限不足,即使拥有“...

TreasureWe
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部