深度学习--必须了解的库

2017 年 12 月 1 日 Python技术博文 Anne

Caffe

究竟Caffe是什么呢?

Caffe是由Berkeley Vision and Learning Center(BVLC)建立的深度学习框架。它是模块化的,速度极快。而且被应用于学术界和产业界的start-of-the-art应用程序中。

优点:

  • 速度快。Google Protocol Buffer数据标准为Caffe提升了效率。

  • 学术论文采用此模型较多。不确定是不是最多,但接触到的不少论文都与Caffe有关(R-CNN,DSN,最近还有人用Caffe实现LSTM)

缺点:

  • 曾更新过重要函数接口。有人反映,偶尔会出现接口变换的情况,自己很久前写的代码可能过了一段时间就不能和新版本很好地兼容了。(现在更新速度放缓,接口逐步趋于稳定,感谢 评论区王峰的建议)

  • 对于某些研究方向来说的人并不适合。这个需要对Caffe的结构有一定了解,(后面提到)。

--from:https://www.zhihu.com/question/27982282/answer/39350629

你可以在一个空白文档里定义你的模型架构和解决方案,建立一个JSON文件类型的.prototxt配置文件。Caffe二进制文件提取这些.prototxt文件并培训你的网络。Caffe完成培训之后,你可以把你的网络和经过分类的新图像通过Caffe二进制文件,更好的就直接通过Python或MATLAB的API。

Caffe github上的Wiki Development · BVLC/caffe Wiki · GitHub已经有了教程了,而且这是最接近latest Caffe的源码结构的教程,你在网上搜到的Blog很多是有点过时的,因为Caffe最近又重构了代码。你可以跟着它的指导去添加自己的层。

代码GitHub网址:

GitHub - BUPTLdy/Caffe_Code_Analysis: Caffe_Code_Analysis

--from:https://www.zhihu.com/question/27982282/answer/80242005

Theano

Theano 在深度学习框架中是祖师级的存在。它的开发始于 2007,早期开发者包括传奇人物 Yoshua Bengio 和 Ian Goodfellow。

Theano是一个Python库,是一个擅长处理多维数组的库(这方面它类似于 NumPy)。 Theano通过与numpy的紧密集成,透明地使用GPU来完成这些工作。

但随着这些年的发展,大量基于 Theano 的开源深度学习库被开发出来,包括 Keras, Lasagne 和 Blocks。这些更高层级的 wrapper API,能大幅减少开发时间以及过程中的麻烦。顺便说一句,Theano 是一整套生态系统,别只用它裸奔,然后抱怨不好用。

优点:

Python + NumPy 的组合

使用计算图

RNN 与计算图兼容良好

有 Keras 和 Lasagne 这样高层的库

不少开发者反映,它的学习门槛比Tensorflow 低

缺点:

本身很底层

比 Torch 臃肿

不支持分布式

有的错误信息没什么用

大模型的编译时间有时要很久

对事先训练过的模型支持不足

用的人越来越少

TensorFlow

TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。

--from:TensorFlow中文社区

推荐学习资源:

可以学一下斯坦福新开的课程,cs20si,web.stanford.edu/class/

国内可以看b站的视频,CS 20SI: Tensorflow for Deep Learning Research

通过这个课程,能够对tensorflow有个全面的了解,从最基本的计算图开始,到如何结构化模型,了解最新的seq2seq,neural style等前沿算法的实现。

Lasagne

Lasagen是一个基于Theano的轻量级的神经网络库。其实就是对Theano库的上层封装,使其用起来更简单,但是相应的灵活性下降。这里的关键词是轻量级的,也就意味着它不是一个像Keras一样围绕着Theano的重包装的库。虽然这会导致你的代码更加繁琐,但它会把你从各种限制中解脱出来,同时还可以让您根据Theano进行模块化的构建。

Lasagne设计的六个原则是简洁、透明、模块化、实用、聚焦和专注。

官网地址:http://lasagne.readthedocs.io/en/latest/index.html
GitHub: https://github.com/Lasagne/Lasagne

Keras

Keras是一个最低限度的、模块化的神经网络库,可以使用Theano或TensorFlow作为后端。Keras最主要的用户体验是,从构思到产生结果将会是一个非常迅速的过程。

在Keras中架构网络设计是十分轻松自然的。它包括一些state-of-the-art中针对优化(Adam,RMSProp)、标准化(BatchNorm)和激活层(PReLU,ELU,LeakyReLU)最新的算法。

Keras也非常注重卷积神经网络,这也是非常有价值的。

更重要的是,你既可以轻松地构建基于序列的网络(其中输入线性流经网络)又可以创建基于图形的网络(输入可以“跳过”某些层直接和后面对接)。这使得创建像GoogLeNet和SqueezeNet这样复杂的网络结构变得容易得多。

Keras不支持多GPU环境中并行地训练网络。

如果我想尽快地训练网络,那么我可能会使用mxnet。但是如果我需要调整超参数,我就会用Keras设置四个独立的实验(分别在我的Titan X GPUs上运行)并评估结果。

mxnet

mxnet也是深度学习Python库无(重点也是训练图像分类网络)。虽然在mxnet中站立一个网络可能需要较多的代码,但它会提供给你惊人数量的语言绑定(C ++、Python、R、JavaScript等)。

Mxnet库真正出色的是分布式计算,它支持在多个CPU / GPU机训练你的网络,甚至可以在AWS、Azure以及YARN集群。

它确实需要更多的代码来设立一个实验并在mxnet上运行(与Keras相比),但如果你需要跨多个GPU或系统分配训练,推荐mxnet。

登录查看更多
1

相关内容

专知会员服务
54+阅读 · 2020年7月4日
【干货书】高级应用深度学习,294页pdf
专知会员服务
149+阅读 · 2020年6月20日
【资源】100+本免费数据科学书
专知会员服务
105+阅读 · 2020年3月17日
2019->2020必看的十篇「深度学习领域综述」论文
专知会员服务
269+阅读 · 2020年1月1日
【新书】傻瓜式入门深度学习,371页pdf
专知会员服务
183+阅读 · 2019年12月28日
【电子书】让 PM 全面理解深度学习 65页PDF免费下载
专知会员服务
16+阅读 · 2019年10月30日
送书 | Keras深度学习你必须知道的神经网络基础
深度学习必须理解的25个概念
机器学习算法与Python学习
5+阅读 · 2018年6月7日
深度学习入门必须理解这25个概念
AI100
7+阅读 · 2018年6月6日
深度学习开发必备开源框架
九章算法
12+阅读 · 2018年5月30日
这10个开源人工智能项目,你必须了解!
大数据技术
9+阅读 · 2018年1月2日
TensorFlow神经网络教程
Python程序员
4+阅读 · 2017年12月4日
深度学习入门篇--手把手教你用 TensorFlow 训练模型
全球人工智能
4+阅读 · 2017年10月21日
语音识别之--CNN在语音识别中的应用
微信AI
9+阅读 · 2017年8月16日
3D Deep Learning on Medical Images: A Review
Arxiv
12+阅读 · 2020年4月1日
A Comprehensive Survey on Transfer Learning
Arxiv
117+阅读 · 2019年11月7日
Neural Image Captioning
Arxiv
5+阅读 · 2019年7月2日
Arxiv
5+阅读 · 2018年10月11日
Arxiv
22+阅读 · 2018年8月30日
Arxiv
11+阅读 · 2018年5月13日
Arxiv
6+阅读 · 2018年1月11日
Arxiv
7+阅读 · 2017年12月28日
VIP会员
相关VIP内容
专知会员服务
54+阅读 · 2020年7月4日
【干货书】高级应用深度学习,294页pdf
专知会员服务
149+阅读 · 2020年6月20日
【资源】100+本免费数据科学书
专知会员服务
105+阅读 · 2020年3月17日
2019->2020必看的十篇「深度学习领域综述」论文
专知会员服务
269+阅读 · 2020年1月1日
【新书】傻瓜式入门深度学习,371页pdf
专知会员服务
183+阅读 · 2019年12月28日
【电子书】让 PM 全面理解深度学习 65页PDF免费下载
专知会员服务
16+阅读 · 2019年10月30日
相关资讯
送书 | Keras深度学习你必须知道的神经网络基础
深度学习必须理解的25个概念
机器学习算法与Python学习
5+阅读 · 2018年6月7日
深度学习入门必须理解这25个概念
AI100
7+阅读 · 2018年6月6日
深度学习开发必备开源框架
九章算法
12+阅读 · 2018年5月30日
这10个开源人工智能项目,你必须了解!
大数据技术
9+阅读 · 2018年1月2日
TensorFlow神经网络教程
Python程序员
4+阅读 · 2017年12月4日
深度学习入门篇--手把手教你用 TensorFlow 训练模型
全球人工智能
4+阅读 · 2017年10月21日
语音识别之--CNN在语音识别中的应用
微信AI
9+阅读 · 2017年8月16日
相关论文
3D Deep Learning on Medical Images: A Review
Arxiv
12+阅读 · 2020年4月1日
A Comprehensive Survey on Transfer Learning
Arxiv
117+阅读 · 2019年11月7日
Neural Image Captioning
Arxiv
5+阅读 · 2019年7月2日
Arxiv
5+阅读 · 2018年10月11日
Arxiv
22+阅读 · 2018年8月30日
Arxiv
11+阅读 · 2018年5月13日
Arxiv
6+阅读 · 2018年1月11日
Arxiv
7+阅读 · 2017年12月28日
Top
微信扫码咨询专知VIP会员