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

转载 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。

1天搞懂深度学习

  • 2018年01月31日 09:45
  • 11.65MB
  • 下载

深度学习工作机制通俗介绍

摘要: 本文是深度学习基础性介绍,以降维的角度分析卷积神经网络模型,并着重说明了目前人工智能存在的不科学性。在本文之前,写过一些关于人工智能的科普性文章,比如人工智能为什么能起作用、模型是什么以及如何...
  • yunqiinsight
  • yunqiinsight
  • 2018-03-27 10:02:03
  • 36

深度学习数学基础之线性代数

深度学习中的基本数据结构,基本上都是用向量或矩阵表示的,因此: 深度学习的基础学科之一:就是线性代数。 深度学习中的线性代数知识主要包括以下部分: 1、标量、向量、矩阵和张量:           ...
  • ming5432ming
  • ming5432ming
  • 2017-11-10 19:36:43
  • 88

开源深度学习库对比总结

  • thesby
  • thesby
  • 2016-05-16 14:53:14
  • 2397

深度学习库安装与使用

/hjimce/article/details/51999566 Theanowindows下 Download Anaconda now! conda ins...
  • Shingle_
  • Shingle_
  • 2017-06-24 15:27:07
  • 505

Mysql 深度学习

持续更新中 mysql 学习连接: http://notes.diguage.com/mysql/
  • qing_mei_xiu
  • qing_mei_xiu
  • 2017-07-27 10:10:17
  • 276

七步理解深度学习

七步理解深度学习 By Matthew Mayo     翻译by Andrewseu 深度学习是机器学习的一个分支,拥有很多的相似性,但是却也不同,深度神经网络结构在自然语言处理、计算机视觉、生...
  • Andrewseu
  • Andrewseu
  • 2016-01-18 17:43:43
  • 12117

深度学习的几种库

转自:/langb2014/article/details/49559179 Python 1. Theano是一个Python类库,用数组向量来定...
  • u013066730
  • u013066730
  • 2016-05-30 16:34:12
  • 9373

深度学习体会1-初步接触深度学习

注1:本文系作者原创,不得擅自转载或拷贝,转载请注明出处。    注2:本人实为机器学习菜鸟,文中难免存在不足或错误。为了不断激励自己学习,将陆续写出自己在机器学习领域方面的体会和心得。       ...
  • huajl_uustc2015
  • huajl_uustc2015
  • 2016-06-18 23:35:28
  • 867

深度学习常用的python库

1. NumPy: NumPy is the fundamental package for scientific computing with Python. It contains among o...
  • u011279649
  • u011279649
  • 2017-11-29 11:09:20
  • 266
收藏助手
不良信息举报
您举报文章:深度学习--必须了解的库
举报原因:
原因补充:

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