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

转载 2017年12月01日 00:00:00

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。

深度学习入门必须理解这25个概念

神经网络基础1)神经元(Neuron)——就像形成我们大脑基本元素的神经元一样,神经元形成神经网络的基本结构。想象一下,当我们得到新信息时我们该怎么做。当我们获取信息时,我们一般会处理它,然后生成一个...
  • pangjiuzala
  • pangjiuzala
  • 2017年05月22日 21:11
  • 5037

[机器学习收藏] TensorFlow初学者必须了解的55个经典案例

TensorFlow初学者必须了解的55个经典案例 导语:本文是TensorFlow实现流行机器学习算法的教程汇集,目标是让读者可以轻松通过清晰简明的案例深入了解 TensorFlow。...
  • soulmeetliang
  • soulmeetliang
  • 2017年07月21日 17:06
  • 3761

学习Linux你必须知道的那些事儿

欢迎加入Linux的大家庭!对你来说,这可能还是一个陌生的领域,不过相信随着逐步深入的了解,你会喜欢上Linux,喜欢上开源的!首先,让我们来看一下,Linux新手应该注意和了解哪些事情吧! 1.认...
  • baidu_35738377
  • baidu_35738377
  • 2016年11月25日 09:47
  • 1632

深度学习入门必须理解这25个概念

神经网络基础1)神经元(Neuron)——就像形成我们大脑基本元素的神经元一样,神经元形成神经网络的基本结构。想象一下,当我们得到新信息时我们该怎么做。当我们获取信息时,我们一般会处理它,然后生成一个...
  • pangjiuzala
  • pangjiuzala
  • 2017年05月22日 21:11
  • 5037

深度学习入门必须理解这25个概念

神经网络基础 1)神经元(Neuron)——就像形成我们大脑基本元素的神经元一样,神经元形成神经网络的基本结构。想象一下,当我们得到新信息时我们该怎么做。当我们获取信息时,我们一般会处理它,然后...
  • Allyli0022
  • Allyli0022
  • 2017年11月29日 16:50
  • 57

深度学习面试你必须知道这些答案

本文原作者Jin Lee,本文原载于知乎专栏。AI 研习社已获得转载授权。 本文是问题 “那些深度学习《面试》你可能需要知道的” 的回答,答案均以英文版Deep Learning页标标记。 ...
  • Y0W1as5eg37urFdS
  • Y0W1as5eg37urFdS
  • 2017年11月01日 00:00
  • 78

深度学习入门必须理解这25个概念

此文转载,仅供个人学习使用,如有侵权立刻删除; 原文链接:/pangjiuzala/article/details/72630166 深度学习入门必...
  • qq_31975211
  • qq_31975211
  • 2017年12月12日 20:51
  • 19

数据科学家必须知道的10个深度学习架构

近年来,深度学习的发展势头迅猛,要跟上深度学习的进步速度变得越来越困难了。几乎每一天都有关于深度学习的创新,而大部分的深度学习创新都隐藏在那些发表于ArXiv和Spinger等研究论文中。 本...
  • songhait
  • songhait
  • 2017年09月30日 12:44
  • 43

做AI必须要知道的十种深度学习方法

——免费加入AI技术专家社群>> ——日薪5k-10k招兼职AI讲师>> --招募1000名AI推广大使>> 不管是AI也好,其他学科也好,学习、研究的过程中不断反思学科的历史,总结学科...
  • CygqjBABx875u
  • CygqjBABx875u
  • 2017年12月04日 00:00
  • 20

做AI必须要知道的十种深度学习方法

The 10 Deep Learning Methods AI Practitioners Need to Apply1-反向传播 2-随机梯度下降 3-学习率衰减 4-dropout 5-max p...
  • yeler082
  • yeler082
  • 2017年12月05日 21:12
  • 48
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习--必须了解的库
举报原因:
原因补充:

(最多只允许输入30个字)