对你来说,哪一个深度学习网络是最佳选择?(2)
Caffe 2
Yangqing和他的Facebook团队正在开发Caffe 2 。在2017年4月18日,Facebook采用BSD协议开放了Caffe2。Caffe 2和Caffe不同点在哪里呢? Caffe 2注重点是为了移动平台更容易建模和大规模部署模型。就像TensorFlow一样, Caffe 2开始采用C++可移值库来支持ARM架构的平台。
Caffe的模型通过多功能脚本很方便转换为Caffe 2的模型。Caffe的设计就是为了方便设备视觉的问题,Caffe 2会继续支持这方面的功能,但是添加了新的功能循环神经网络(RNN)和长短期记性(LSTM)神经网络,可以使用来进行自然语言处理、手写识别和时间序列的预测。
期望看到Caffe 2在深度学习的社区里超越Caffe,与它发布所声明的功能一样美好。
Microsoft Cognitive Toolkit
Microsoft Cognitive Toolkit (CNTK) 是一个最初为了实现语音识别的深度神经网络。CNTK支持RNN和CNN类型的神经网络,这些模型很方便处理图片处理、手写识别和语音识别。CNTK支持64-bit Linux和Windows操作系统,可以使用Python 或 C++来开发,它是采用MIT协议发布。
CNTK与TensorFlow 和Theano采用同样的向量操作图方式来构造神经网络, 比如矩阵加/乘法或卷积运算。因此,像TensorFlow 和Theano一样, CNTK 也允许对神经网络的层进行细节的调整。构造神经网络元也可以通过高级语言进行,而不像Caffe使用低级语言来编写。
像Caffe一样, CNTK也是基于C++开发,同时支持CPU/GPU多平台。 CNTK 在Azure GPU平台上,提供了最优化的分布计算性能。当前CNTK缺少对ARM平台的支持,因此不能使用在移动设备上。
MXNet
MXNet (pronounced “mix-net”)起源于Carnegie Mellon University 和 the University of Washington。 MXNet是一个功能齐全,可编程和可伸缩的神经网络平台,同时也支持最先进的学习模式。 MXNet提供了一种混合编程模型(imperative and declarative),同时支持多种开发语言,包括Python, C++, R, Scala, Julia, Matlab 和 JavaScript。在2017年1月,MXNet已经接受了Apache孵化器计划。
MXNet支持的神经网络模型:卷积神经网络(CNN)和循环神经网络(RNN)、长短期记性神经网络 (LTSM) 。这个平台提供优秀的图片处理、手写识别和语音识别、预测和自然语言处理。因而有人说MXNet是世界上最好的图片分类平台。
MXNet 拥有很强的灵活性,比如GPU平行计算,内存镜像,快速开发能力和可移值性。另外,MXNet集成了Apache的Hadoop YARN, 它是一个通用的、分布式、应用程序管理框架,从而让MXNet成为TensorFlow有力的竞争者。
MXNet与其它神经网络平台的最大区别是支持生成对抗神经网络( Generative Adversarial Network,GAN)模型。这种模型特别适用 Nash equilibrium 来实现经济学模型。
另外一方面,Amazon CTO Werner Vogels宣布支持MXNet: “Today, we are announcing that MXNet will be our deep learning framework of choice.” Vogel 就是说 “we plan to use it broadly in existing and upcoming new services.” 在2016年Apple公司也通过收购Graphlab/Dato/Turi来支持这个神经网络平台。
Torch
Torch 是由Facebook公司的Ronan Collobert和Soumith Chintala、Nvidia公司的Clement Farabet 、Google Deep Mind的Koray Kavukcuoglu创建的神经网络平台。Torch目前主要由Facebook, Twitter 和 Nvidia来共同发布。Torch采用BSD 3协议发布。不过,Facebook宣布将改为使用Caffe 2平台,以便它可以部署到移动平台。
Torch采用Lua脚本来编程神经网络的应用。Lua并不是一个主流的编程语言,需要花费比较多精力去学习它,才可以使用。
Torch缺少像TensorFlow 或MXNet的YARN或Deeplearning4J的分布应用框架。也缺少广泛主流语言的编程接口,从而限制了它的应用开发人员。
Deeplearning4J
Deeplearning4J (DL4J) 是采用Apache 2.0协议发布的开源深度学习平台,是采用Java和Scala编写的神经网络库。DL4J是SkyMind Adam Gibson发明的,是唯一的商业级的深度学习网络,结合Hadoop和Spark,多主线程的功能。DL4J 也是一个唯一采用Map-Reduce方式训练的神经网络平台。
DL4J平台支持内置GPU计算,与YARN实现的同样的功能, Hadoop分布式计算,应用程序管理框架。 DL4J拥有丰富的深度神经网络架构:RBM, DBN, Convolutional Neural Networks (CNN), Recurrent Neural Networks (RNN), RNTN, 和 Long Short-Term Memory (LTSM) network。DL4J也支持采用Canova库来进行矢量计算。
DL4J采用Java来实现,因此它Python语言实现稍快。它在多GPU下图片识别的速度可以与Caffe一样快。该框架提供了良好的图像识别,欺诈检测和自然语言处理能力。
Theano
Theano 由University of Montreal Institute为了学习算法而开发的。由Yoshua Bengio创建的实验室是一个贡献很大的深度学习研究的实验室,拥有约100名学生和教师。Theano提供快速高效地开发深度学习算法,采用BSD协议发布。
Theano缺少像TensorFlow的优雅,但它提供了循环控制的API,叫做scan, 从而让它很方便和高效地构造循环神经络(RNN)。
Theano支持多种类型卷积神经网络来进行手写识别、图片分类,特别是医学图片处理。Theano使用3-D卷积/池化来对视频进行分类识别。Theano 也提供了自然语言处理,比如理解、翻译和生成。Theano也支持对抗神经网络模型(GAN),它是被MILA学生发明的,而不是Google公司。
Theano支持多GPU数据并行计算,分布计算模型。 Theano只支持一种编程开发语言,是学术研究的一个伟大的工具,跑得比TensorFlow更有效。但是它缺少移动平台的支持,并且缺少其它编程语言的接口,从而减少了在商业上部署和开发。
开源vs. 闭源平台
随着深度学习不断地成熟,在各种平台:TensorFlow, Caffe 2 和 MXNet之间竞争已经开始,鹿死谁手还不知道。作为软件开发商会通过高级的AI从你的数据里获取训练模型来选择平台。风险选择:你选择一个闭源的商业AI产品,还是采用一个开源的平台?当采用开源时,你又决定那一个平台最适合你的产品?如果已经使用闭源平台,又怎么样转移到开源平台呢?不过以短期来看,应该选择最适合自己实现目标的平台为好。
1.Unity5.x游戏基础入门
2. TensorFlow API攻略
4. C++标准模板库从入门到精通
http://edu.csdn.net/course/detail/3324
5.跟老菜鸟学C++
6. 跟老菜鸟学python
7. 在VC2015里学会使用tinyxml库
8. 在Windows下SVN的版本管理与实战
http://edu.csdn.net/course/detail/2579
9.Visual Studio 2015开发C++程序的基本使用
http://edu.csdn.net/course/detail/2570
10.在VC2015里使用protobuf协议
11.在VC2015里学会使用MySQL数据库
对你来说,哪一个深度学习网络是最佳选择?(2)相关推荐
- 【模型解读】深度学习网络之Siamese Network网络
文章首发于微信公众号<有三AI> [模型解读]深度学习网络只能有一个输入吗 继续我们之前的专栏<模型解读>,今天说多输入网络,很久没写了因为实在是有更重要的事情. 平常我们所见 ...
- 图像超分中的深度学习网络
图像超分中的深度学习网络 质量评估 操作通道 有监督算法 预上采样 后采样超分 逐步上采样 迭代上下采样 上采样的学习方式 残差块 递归学习 多路径学习 密集连接 通道注意力机制 其他卷积 像素递归网 ...
- 深度学习网络调参技巧
深度学习网络调参技巧 本文转载自[炼丹实验室],讲了一些深度学习训练的技巧,其中包含了部分调参心得:深度学习训练心得.不过由于一般深度学习实验,相比普通机器学习任务,时间较长,因此调参技巧就显得尤为重 ...
- 轻量级深度学习网络——MobileNet MobileNet v2
这篇文章主要讲的是深度学习网络篇中轻量化网络之一的MobileNet和MobileNet v2.在深度学习中轻量化网络有很多方法, 比如说卷积核分解.使用bottleneck结构.用低精度浮点数保存模 ...
- 搭建深度学习网络识别图片--猫狗大战
猫狗大战(项目代码:https://github.com/JasonZhou89/kaggle--Dogs-vs.-Cats-Redux-Kernels-Edition) 一. 问题的定义 1.1 项 ...
- 面向弹载图像的深度学习网络压缩方法研究
这里写自定义目录标题 源自:航空兵器 作者:高一博 杨传栋 陈栋 凌冲 摘 要 针对基于深度学习目标识别算法具有网络结构复杂.参数量大.计算延迟高等特点,难以直接应用于弹载任务的问题,对网络轻量化方法 ...
- 何恺明团队新作!深度学习网络架构新视角:通过相关图表达理解神经网络
标题&作者团队 导语:恺明大神出品,必属精品.Facebook的研究员从一个新奇的角度对神经网络的表示与设计进行探索,提出了一种新颖的相关图表示方式.它有助于对现有网络架构进行更深层次的分析与 ...
- 如何利用扬声器构建深度学习网络?
简 介: 来自于康纳尔大学的这篇研究论文给出了 一个利用物理系统实现深层网络学习和推理的框架.本文对于文章举例的三个系统不属于线性时不变系统进行分析.除了其中SHG系统比较复杂之外,其它两个系统(三极 ...
- 深度学习网络backbone?head、neck、bottleneck、GAP、Embedding、pretext task、downstream task、temperature parameter
一些术语: backbone这个单词原意指的是人的脊梁骨,后来引申为支柱,核心的意思.在神经网络中,尤其是CV领域,一般先对图像进行特征提取(常见的有vggnet,resnet,谷歌的inceptio ...
最新文章
- android:更改PagerTabStrip背景颜色,标题字体样式、颜色和图标,以及指示条的颜色...
- Mysql 多表使用 Case when then 遇到的坑
- Oracle 11g密码过期问题及解决方案
- ES6 iterator 迭代器
- linux 的学习笔记 tree ifconfig
- 获取Bootcamp 6 下载地址(mac装win10)
- 《史上最简单的 SpringCloud 教程》系列 (转载 http://blog.csdn.net/forezp/article/details/70148833 本文出自方志朋的博客)
- 只有1kb的清理软件_1kb文件夹快捷方式病毒专杀工具下载
- C语言怎么用char输出多个字母,c语言中char类型如何存放多个字符
- html轮播图片在线制作,如何制作图片轮播?轮播图在线制作技巧
- java尚硅谷 java基础第一个项目,记账软件
- 如何建立个人网站服务器篇
- mathematica动态模型的建模分析
- 用JavaScript读取excel并按列转换为数组
- MFC实现交通图导航系统
- 逃离云端“母体”——虚拟机逃逸
- Portapack应用开发教程(十五) APRS接收
- 在unity中编写程序实现打开Word文件
- python中的arange函数,Python中的arange是什么?和range有什么不同?
- 数字图像处理第九章 形态学图像处理
热门文章
- 后台数据不清理android,android 后台被数据清理后切换到前台数据丢失问题
- Rs—Ri—部分差Rsf部分
- 短代码 html,WooCommerce 默认提供的简码短代码
- ps磨皮滤镜插件Portraiture for Mac 破解方法
- Linux - 一次性计划任务之at命令使用
- 【C语言】扫雷游戏(递归实现展开一片)8000字详细教学
- 关于大数据相关的问答汇总,持续更新中~
- Comodo EV SSL证书
- 如何对计算机进行磁盘整理,WinXP电脑磁盘碎片怎么整理,教您如何给XP系统电脑进行磁盘碎片整理...
- 期刊论文图片像素要求