在单GPU下,所有这些工具集都调用cuDNN,因此只要外层的计算或者内存分配差异不大其性能表现都差不多。

Caffe:

1)主流工业级深度学习工具,具有出色的卷积神经网络实现。在计算机视觉领域Caffe仍然是最流行的工具包,他有很多扩展,但是由于

一些遗留的架构问题,它对递归网络和语言建模的支持很差。此外,在caffe种图层需要使用C++定义,而网络则使用protobuf定义。

2)caffe支持pycaffe接口,但这仅仅是用来辅助命令行接口的,而即便是是使用pycaffe也必须使用Protobuf.

3)基于C++,因此可以在多种是设备上编译,具有跨平台性,在部署方面是最佳选择。

4)性能简单快速

5)算平均水准,痛点在于需要使用C++定义图层,而模型需要使用protobuf定义。如果想支持CPU和GPU,用户还必须实现额外的函数如,Forward_gpu和Backward_gpu;

对于自定义的层类型,还必须为其分配一个int类型的ID,并将其添加到proto文件中。

CNTK:

1)目前已经发展成为一个通用的、平台独立的深度学习系统。

2)没有python或者其他高级语言的接口。

3)与Caffe一样,也是基于C++并且是跨平台的,部署非常简单,但它不支持ARM构架,这限制了其在移动设备上的能力。

4)性能简单快速

TensorFlow:

1)是一个理想的RNN(递归网络神经)API和实现,TensorFlow使用向量运算的符号图方法,使得新网络的指定变得相当容易,但TensorFlow

并不支持双向RNN和3D卷积,同时公共版本的图定义也不支持循环和条件控制,这使得RNN的实现并不理想,因为必须要使用Python循环且

无法进行图编译优化。

2)支持python和c++接口。

3)由于它使用了Eigen而不是BLAS类库,所以能够基于ARM架构编译和优化。用户可以将训练好的模型部署到多种设备上面,不需要实现单独的

模型解码器或者加载python/LuaJIT解释器。他的模型可以部署到Windows设备上。

4)架构清晰,采用模块化设计,支持多种前端和执行平台

Theano:

1)支持大部分的先进网络,现在很多研究想法都源于Theano,他引领了符号图在编程网络中使用的趋势,Theano的符号API支持循环控制,让

RNN实现更加容易且高效。

2)支持python接口

3)缺少底层接口,并且其python解释器也很低效,对工业用户而言缺少吸引力。跨平台,模型能够部署到Windows环境上。

4)架构变态,整个代码库都是Python的,就来你C/cuda代码也要被打包为Python字符串,这使得它难以导航、调试、重构和维护。

Torch:

1)对卷积网络的支持非常好。TensorFlow和Theano中时域卷积可以通过conv2d来实现,但这样做有点取巧;

2)在luaJIT上运行,与c++\c#以及JAVA比较,速度相当快,性能更好,但是Lua不是主流的语言。

3)需要LuaJIT的支持,集成方面难度大,使得他的吸引力不如Caffe\CNTK\TensorFlow等直接支持C++框架。

Caffe、CNTK、TensorFlow和Theano都在所有的系统上运行,而Torch不支持Windows。

深度学习框架caffe/CNTK/Tensorflow/Theano/Torch的对比的更多相关文章

  1. 深度学习框架Caffe的编译安装

    深度学习框架caffe特点,富有表达性.快速.模块化.下面介绍caffe如何在Ubuntu上编译安装. 1. 前提条件 安装依赖的软件包: CUDA 用来使用GPU模式计算. 建议使用 7.0 以上最 ...

  2. 深度学习框架-caffe安装-环境[Mac OSX 10.12]

    深度学习框架-caffe安装 [Mac OSX 10.12] [参考资源] 1.英文原文:(使用GPU) [http://hoondy.com/2015/04/03/how-to-install-ca ...

  3. 深度学习框架-caffe安装-Mac OSX 10.12

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p2 ...

  4. 贾扬清分享_深度学习框架caffe

    Caffe是一个清晰而高效的深度学习框架,其作者是博士毕业于UC Berkeley的 贾扬清,目前在Google工作.本文是根据机器学习研究会组织的online分享的交流内容,简单的整理了一下. 目录 ...

  5. 深度学习框架caffe在ubuntu下的环境搭建

    深度学习实验室服务器系统配置手册 目录:     一,显卡安装     二,U盘启动盘制作     三,系统安装     四,系统的基本配置     五,安装Nvidia驱动     六,安装cuda ...

  6. 《TensorFlow实战Google深度学习框架》笔记——TensorFlow入门

    一.Tensorflow计算模型:计算图 计算图是Tensorflow中最基本的一个概念,Tensorflow中的所有计算都被被转化为计算图上的节点. Tensorflow是一个通过计算图的形式来描述 ...

  7. 深度学习框架Caffe —— Deep learning in Practice

    因工作交接需要, 要将caffe使用方法及整体结构描述清楚. 鉴于也有同学问过我相关内容, 决定在本文中写个简单的tutorial, 方便大家参考. 本文简单的讲几个事情: Caffe能做什么? 为什 ...

  8. 深度学习框架caffe在macOS Heigh Sierra上安装过程实录

    第一步.安装依赖库 brew install -vd snappy leveldb gflags glog szip lmdb brew tap homebrew/science brew insta ...

  9. 【深度学习框架-caffe】caffe中使用到的layer

    https://www.jianshu.com/p/f6f49f6bcea6 https://github.com/BVLC/caffe/tree/master/include/caffe/layer ...

随机推荐

  1. 非常优秀的swiper插件————幻灯片播放、图片轮播

    http://www.idangero.us/ http://www.swiper.com.cn/ Swiper中文网 2015-10-15 SuperSlide2: (这是个PC用的滚屏插件,看着不 ...

  2. pyqt5.0 GraphicsView框架

    场景(The Scene) QGraphicsScene提供图形视图场景.该场景具有以下职责: 提供用于管理大量图元的快速界面(锅) 将事件传播到每个图元(把螃蟹烧熟了) 管理图元状态,例如选择和焦点 ...

  3. input 选择框改变背景小技巧

    最近在项目中遇到一个问题,想要改变input选择框的背景,然而,令我没有想到的是,竟然无法直接改变背景的颜色 通常情况下:我们都可以通过改变元素的 background-color 的值来改变元素的背 ...

  4. SQL 读取csv 文件批量插入数据

    use test /* create table temp_pre ( vc_product_id varchar(20) default '', en_in_amount numeric(9,2)d ...

  5. asp.net文件/大文件上传需要配置的项目整理

    HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求. 最可能的原因: •Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值. 可尝 ...

  6. EOS的发币逻辑

    [EOS的发币逻辑] EOS官网的Guide中(参考[1]),描述了如何发自己的Token: 1.创建一个contract. 2.有一些create.transfer.close action. 3. ...

  7. java实现两个不同list对象合并后并排序

    工作上遇到一个要求两个不同list对象合并后并排序1.问题描述从数据库中查询两张表的当天数据,并对这两张表的数据,进行合并,然后根据时间排序.2.思路从数据库中查询到的数据放到各自list中,先遍历两 ...

  8. 706. Design HashMap 实现哈希表

    [抄题]: public MyHashMap() {  主函数里面是装非final变量的,如果没有,可以一个字都不写 } [暴力解法]: 时间分析: 空间分析: [优化后]: 时间分析: 空间分析: ...

  9. [leetcode]78. Subsets数组子集

    Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solut ...

  10. Python积累三:object() take no object!

    A,报错:object() take no object! 根因:代码书写级错误!!!!! 两个原因: 1. __init__ 左右都是2个下划线,这里自己没掉进去! 2.init写成int,不是in ...