人工智能深度学习Caffe框架介绍,优秀的深度学习架构

在深度学习领域,Caffe框架是人们无法绕过的一座山。这不仅是因为它无论在结构、性能上,还是在代码质量上,都称得上一款十分出色的开源框架。更重要的是,它将深度学习的每一个细节都原原本本地展现出来,大大降低了人们学习研究和开发的难度。

一、从Caffe的开发中了解到的用户需求:
深度学习的框架总会不断改变,Caffe也会有被新框架代替的一天。但是在开发Caffe的过程中,贾扬清发现大家喜欢的框架其实有着很多相似的地方,这些闪光点拥有很长的生命周期,发现并掌握人们这些共同偏好将为以后开发新的框架积累经验。
Caffe之所以广受欢迎可能是因为有以下的四个特点:
  1、 稳定的模型架构
  Caffe通过Protobuf来定义一个网络的结构,而这个由Google开源的库具有优秀的版本兼容性。随着Caffe的框架源码的不断更新迭代,之前定义的网络结构依然能兼容解析,模型仍然能正确加载运行。
  2、较好的设备抽象
  合理的设备抽象能够精简代码,提高框架适用性。在这方面Caffe做了比较好的尝试,模型的训练和使用与不同的平台耦合比较低,只要平台能解析网络结构并读取二进制的模型参数,就能运行该模型。这样大大拓展了框架的应用范围,自然更加符合用户的使用需求。
  3、清晰的说明教程
  如何让首次接触到框架的人通过说明教程就能最快地熟悉运用,这对于一个新面世的框架来说尤为重要。以Caffe为例,用户只需要将官方文档的例子跑一遍,基本就能清楚Caffe的操作过程和细节,这给它的广泛传播提供了最坚实的基础。
  4、开放的模型仓库
  目前Caffe还维护了一个Model Zoo, 许多论文的作者会将模型发布到这里,其它用户可以利用这些材料轻松地将模型复现,还可以在github上参与开发讨论,从而更深入地学习实践。

二、现有深度学习框架的侧重点:
  1、人们的需求多种多样,目前,还没有任何一种深度学习的框架能够满足人们所有的需求。对于工业界而言,从业者看重的是框架的稳定性强、数据量大、速度快、容易进行数据整合等。
  2、对于学术界来说,学者们更希望框架容易调试、灵活性要强、迭代要快。因此,比照现有深度学习框架的特点,Theano、Torch可能会更加适合学术界,而D4J等可能就要更适合工业界一些,至于Caffe、Tensorflow等为代表的框架则是介于二者之间。
  
三、对未来机器学习框架设计的一些思考:
  1、使用计算图 (computation graph)
  Caffe框架在实现网络的forward, backward, update时,是通过Solver, Net, Layer之间递进地逐步回调对应的forward, backward, update来实现的,在加入并行化之后,为了用计算来覆盖数据传输的时间,这些回调的运用会变得相对复杂。
  因此,目前许多框架都在往computation graph的风格上偏移。这种基于computation graph的深度学习框架不仅在网络的更新方面更加直接,而且在并行方面,无论是数据并行方式还是模型并行方式,都能做到接近线性的提速。大家未来也可以在这个方向做些尝试。
  2、高效方便地输入数据
  对于Caffe用户而言,首要问题便是如何导入数据。尤其是在算法比较简单时,保证数据输入的高效性将成为制约模型的首要因素。之前进行的某个项目里,在8个GPU(Titan X)上训练AlexNet,需要达到每秒钟处理1600张图片(3.14GB/s)的要求。甚至对于另外一些模型而言,还需要更多的吞吐量。如果数据接口没有做好,是绝对无法达到这样的要求的。
  3、更快的速度
  网络结构实现需要在灵活性和速度上进行权衡,这种权衡可以体现在框架设计的粗细粒度上。例如一个Inception的结构,是做成像Caffe这样通过各个层的累积来形成,还是直接由Conv2D, BiasAdd, Relu这样的基本计算来直接构造一个Inception结构。这样不同粗细粒度的构建方法体现了整个框架对速度或是灵活性的权衡。
  另外,对于底层的实现,最好用硬件供应商提供的数值计算库,比如CuDNN, MKL-DNN,Accelerate,Eigen,NNPack等。
  4、 可移植性
  要提升框架的实用价值,就必须提升其训练出的模型的可移植性。换句话说,也就是要让框架训练出的模型具有平台无关性,包括了系统层面(windows、linux、android、iOS、OS X等)及硬件层面(CPU、GPU、FPGA、ARM等)。这就必须使得设计出的模型更加轻量。

-----------------------------------------

人工智能范畴及深度学习主流框架

工业机器人,家用机器人这些只是人工智能的一个细分应用而已。
图像识别,语音识别,推荐算法,NLP自然语言,广告算法,预测算法,数据挖掘,无人驾驶、医疗咨询机器人、聊天机器人,这些都属于人工智能的范畴。

人工智能现在用到的基础算法是深度学习里面的神经网络算法,具体应用场景有不同的专业算法
实际上很多细分领域的,差别还是很多的
机器人的对运动控制算法,图像识别算法要求比较高
像alphaGo,推荐算法,语音识别这些就主要靠深度学习算法和大数据训练了

深度学习的开源框架现在主流的有:caffeonspark(微软), tensorflow(google),Theano,dl4j, Torch,Keras
caffeonspark用在视觉图片识别上比较好,dl4j用在NLP上做类似问答搜索的比较多,tensorflow用在学习新的算法上比较好

可以看本人另外一篇博客:

人工智能范畴及深度学习主流框架,IBM Watson认知计算领域IntelligentBehavior介绍 - 流风,飘然的风 - 博客园
http://www.cnblogs.com/zdz8207/p/DeepLearning-framework-ibm-watson.html

人工智能深度学习Caffe框架介绍,优秀的深度学习架构的更多相关文章

  1. 【机器学习PAI实践十】深度学习Caffe框架实现图像分类的模型训练

    背景 我们在之前的文章中介绍过如何通过PAI内置的TensorFlow框架实验基于Cifar10的图像分类,文章链接:https://yq.aliyun.com/articles/72841.使用Te ...

  2. 深度学习—caffe框架训练文档

    转存:LMDB E:\机器学习2\caffe资料\caffe_root\caffe-master\Build\x64\Release>convert_imageset.exe E:/机器学习2/ ...

  3. AI学习---TensorFlow框架介绍[图+会话+张量+变量OP+API]

    TensorFlow的数据流图 TensorFlow的结构分析: 图 + 会话 TensorFlow = 构图阶段(数据与操作的执行步骤被描绘出一个图) + 执行图阶段(使用回话执行构建好的图中操作) ...

  4. Caffe框架,了解三个文件

    不知道从什么时候开始,Deep Learning成为了各个领域研究的热点,也不知道从什么时候开始,2015CVPR的文章出现了很多Deep Learning的文章,更不知道从什么时候开始,三维重建各个 ...

  5. hue框架介绍和安装部署

    大家好,我是来自内蒙古的小哥,我现在在北京学习大数据,我想把学到的东西分享给大家,想和大家一起学习 hue框架介绍和安装部署 hue全称:HUE=Hadoop User Experience 他是cl ...

  6. 深入学习微框架Spring-boot

    深入学习微框架:Spring Boot 深入学习微框架:Spring Boot

  7. Oracle GoldenGate学习之Goldengate介绍

    Oracle GoldenGate学习之Goldengate介绍 (2012-10-02 17:07:27) 标签: 检查点 数据传输 队列 进程 分类: Goldengate Goldengate介 ...

  8. 人工智能范畴及深度学习主流框架,IBM Watson认知计算领域IntelligentBehavior介绍

    人工智能范畴及深度学习主流框架,IBM Watson认知计算领域IntelligentBehavior介绍 工业机器人,家用机器人这些只是人工智能的一个细分应用而已.图像识别,语音识别,推荐算法,NL ...

  9. 人工智能范畴及深度学习主流框架,谷歌 TensorFlow,IBM Watson认知计算领域IntelligentBehavior介绍

    人工智能范畴及深度学习主流框架,谷歌 TensorFlow,IBM Watson认知计算领域IntelligentBehavior介绍 ================================ ...

随机推荐

  1. 获取微信服务器IP地址

    关键字:微信公众平台 微信服务器 IP地址 如果公众号基于安全等考虑,需要获知微信服务器的IP地址列表,以便进行相关限制,可以通过该接口获得微信服务器IP地址列表. 接口调用请求说明 http请求方式 ...

  2. 取计算机特征码(网卡MAC、硬盘序列号、CPU ID、BIOS编号)

    以下代码可以取得系统特征码(网卡MAC.硬盘序列号.CPU ID.BIOS编号) BYTE szSystemInfo[4096]; // 在程序执行完毕后,此处存储取得的系统特征码    UINT u ...

  3. Power-BI助顾得医药济世康民

    公司简介成立于 2011 年 9 月 24 日,是一家主要以医院销售为主,集批发.配送.售后服务于一体的商业公司.现有药品储备面积 16000 平方米,开户医院 52 家,营销网络辐射山西省境内部分县 ...

  4. Java foreach

    foreach循环也叫增强型的for循环,或者叫foreach循环. foreach循环是JDK5.0的新特性(其他新特性比如泛型.自动装箱等). import java.util.Arrays; p ...

  5. Maven 介绍

    1.maven的用途maven是一个项目构建和管理的工具,提供了帮助管理 构建.文档.报告.依赖.scms.发布.分发的方法.可以方便的编译代码.进行依赖管理.管理二进制库等等.maven的好处在于可 ...

  6. Python基础(冒泡、生成器、迭代器、列表与字典解析)

    一.冒泡算法 冒泡算法,给定一组数据,从大到小排序或者从小到大排序,就像气泡一样 原理:  相邻的两个对象相比,大的放到后面,交换位置 交换位置通过a,b=b,a来实现 1.我们可以通过for循环来根 ...

  7. Linux 内核版本规律

    版本组成:主版本号.次版本号.修正版本号 主版本号和次版本号一起标志着重要的功能变更,修正版本号表示较小的功能变更.次版本号表示该版本是否为稳定版本,偶数则为稳定版本,奇数则可能存在一些BUG.

  8. HBase -- 基于HDFS的开源分布式NoSQL数据库

    HBase(Hadoop Database)是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,我们可以利用HBase技术在廉价的PC上搭建起大规模结构化存储集群.同Google的Bigtable ...

  9. Android Bundle类

    根据google官方的文档(http://developer.android.com/reference/android/os/Bundle.html) Bundle类是一个key-value对,“A ...

  10. 怎么查找执行比较慢的sql语句-DBA给的建议

    1.使用sql动态视图 如下: b.text,a.total_worker_time,a.total_logical_reads,a.total_elapsed_time,execution_coun ...