主流深度学习框架总结

TensofFlow

TensorFlow是相对高阶的机器学习库,用户可以方便地用它设计神经网络结构,而不必为了追求高效率的实现亲自写C++或CUDA代码。灵活的移植性,对不同平台PC、IOS、Android、Servering都提供支持。

Caffe

Caffe设计时的目标只针对于图像,没有考虑文本、语音或者时间序列的数据,因此Caffe对卷积神经网络的支持非常好,但对时间序列RNN、LSTM等支持得不是特别充分。在计算机视觉领域Caffe应用尤其多,可以用来做人脸识别、图片分类、位置检测、目标追踪等。Caffe在GPU上训练的性能很好(使用单块GTX 1080训练AlexNet时一天可以训练上百万张图片),但是目前仅支持单机多GPU的训练,没有原生支持分布式的训练。庆幸的是,现在有很多第三方的支持,比如雅虎开源的CaffeOnSpark,可以借助Spark的分布式框架实现Caffe的大规模分布式训练。

Torch

Torch给自己的定位是LuaJIT上的一个高效的科学计算库,支持大量的机器学习算法,同时以GPU上的计算优先。Torch的目标是让设计科学计算算法变得便捷,它包含了大量的机器学习、计算机视觉、信号处理、并行运算、图像、视频、音频、网络处理的库,同时和Caffe类似,Torch拥有大量的训练好的深度学习模型。

Keras

Keras是一个崇尚极简、高度模块化的神经网络库,使用Python实现,并可以同时运行在TensorFlow和Theano上。它旨在让用户进行最快速的原型实验,让想法变为结果的这个过程最短。Keras最大的问题可能是目前无法直接使用多GPU,所以对大规模的数据处理速度没有其他支持多GPU和分布式的框架快。

MXNet

MXNet是DMLC(Distributed Machine Learning Community)开发的一款开源的、轻量级、可移植的、灵活的深度学习库,它让用户可以混合使用符号编程模式和指令式编程模式来最大化效率和灵活性。是各个框架中率先支持多GPU和分布式的,同时其分布式性能也非常高。

CNTK

CNTK(Computational Network Toolkit)是微软研究院(MSR)开源的深度学习框架。已经发展成一个通用的、跨平台的深度学习系统,在语音识别领域的使用尤其广泛。PC上支持Linux、Mac和Windows,但是它目前不支持ARM架构,限制了其在移动设备上的发挥。

各框架比较

框架机构支持语言特点
TensorflowGooglePython/C++/Go…1.功能齐全
2.移植性好
3.文档齐全,但乱
CaffeBVLCC++/Python1.图像领域出众
2.灵活性一般
3.社区强大
4.文档全,学习资料多
TorchFaceboolLua1.支持动态图
2.结构简单
3.手动实现梯度求解
KerasfcholletPython1.文档齐全
2.上手简单
3.速度慢,需要GPU
MXNetDMLCPython/C++/R…1.计算图优化好
2.节约内存
3.高度灵活
4.CNN、RNN情感分析出众
CNTKMicrosoftC++1.语音识别领域出众
2.性能优异,节约内存

资料来源:
1.) 主流深度学习框架对比.
2.) 深度学习 框架比较.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件技术专业调研报告 为了更好地制定2018年软件技术专业培养方案,2018年上半年通过各类招聘网,对 软件技术专业进行了市场调研,现将调研结果总结如下: 一、调研的目的 此次进行调研的主要目的是了解软件行业的人才需求目标,能力要求以及行业的工 作过程,以此来修改人才培养方案和进行课程建设。 二、调研的主要方式 1.要想了解企业对人才的要求,最好的方式我认为就是看招聘启示,一个企业的硬 性需求都写在招聘启示中了。所以我首先上网查询本行业相关的大型企业的招聘要求, 了解行业所需的前沿知识。 2.由于计算机学科的特殊性,知识体系翻新速度非常快,了解整个行业的发展动态 有助于我们制定我们的人才培养方案和课程建设,所以我又在网上查找行业的最新动态 以确定我进行企业调研的方向。 3.利用自己的人际关系,与已经就业的学生进行聊天交流,借此向其了解有关本专 业的专业计划的问题,了解企业中的工作流程。 三、调研的主要内容 1.软件行业的发展现状 近年来,我国软件和信息技术服务业发展迅速,但产业规模和实力还不能满足国民 经济和社会发展需要,依然存在一些制约产业发展的突出问题,具体表现在:缺乏具有 全球领先地位的大企业,产业整体上处于价值链的中低端;产业创新体系不健全,核心 技术缺乏;产业链协同效应尚未充分发挥,亟待建立龙头企业带动、中小企业支撑的产 业发展格局;人才结构矛盾突出,高层次、复合型、领军型人才依然缺乏;以市场为导 向、政产学研用结合的支撑体系有待完善,产业可持续发展能力亟需提升。 十三五时期,伴随信息通信技术的迅速发展和应用的不断深化,软件与网络深度耦 合,软件与硬件、应用和服务紧密融合,软件和信息技术服务业加快向网络化、服务化 、体系化和融合化方向演进。产业技术创新加速,商业模式变革方兴未艾,新兴应用层 出不穷,将推动产业融合发展和转型升级。 中商情报网发布《2013- 2018年中国软件行业市场深度调查及投资战略研究报告》显示,目前全国软件业务收入排 名前20位的城市,占据全行业近九成的业务收入,其中北京、上海、南京、济南等11个 软件名城及创建城市,占全国软件收入的65%。软件产业也已成为这些城市的战略支柱产 业。 2、软件行业的人才需求状况 我国软件业持续保持20%的增长速度,每年的软件人才需求缺口是40~100万人次。 国家十大产业振兴规划中的电子信息产业和物流产业与软件行业紧密相关,电子信息产 业的三大任务都包括了软件产业。软件技术专业毕业的学生满足了社会需求,具有广阔 就业前景。该专业毕业生适合在IT领域、软件公司、各类企业和政府机关、科研单位从 事软件开发、软件测试、网页设计、数据库维护、客户端编程等工作。 3、岗位(岗位群)调查 1)Java Web程序员 职位描述: WEB应用程序代码编写; 模块代码测试及优化; 3、编写单元测试文档。 岗位要求: 精通java基础,及常用java设计模式,深入理解MVC编程模式,了解UML相关知识。 掌握struts、spring、hibernate等主流java开源框架技术。 熟练掌握WEB应用程序设计相关的jsp、javascript、ajax、css、html等技术。 熟悉DB2、ORCALE、MS SQL SERVER数据库其中一种; 5、有较强的新技术学习能力,和良好的沟通能力和理解能力。 2)Android程序员 职位描述: 1、负责Android平台下的APP应用开发; 2、能根据需求开发应用程序,完成模块设计、编码、测试、维护、文档编写工作; 根据开发过程中的体验对产品提出改进意见。 岗位要求: 1、精通Java语言; 2、熟悉面向对象开发与设计,精通常用数据结构与算法,熟悉软件设计模式; 4、熟悉Android应用开发框架、SDK及常用调测方法; 5、熟悉Android UI界面常用组件、常用布局方法、事件处理机制; 6、熟悉Android多线程设计、网络编程、数据存储与IO、多媒体开发; 7、熟悉Android端WebSocket开发,并且熟练使用OkHttp框架; 8、熟练掌握Android,RxJava,MVP架构设计; 9、熟悉了解Android下NDK编程和JNI使用; 10、吃苦耐劳、责任心强、做事积极主动、有团队合作精神;逻辑思维严谨、关注新技 术,有持续学习能力。 3)java实施运维工程师 职位描述: 1、在项目经理的领导下,配合项目工作; 2、负责信息系统的安装及日常运维,包括接听客户咨询电话,向用户提供咨询、指导、 解释相关业务或技术问题,收集并及时反馈用户信息; 3、负责用户培训,编写培训文档、使用手册、测试文档,解答用户系统使用过程中的疑 问; 4、完成项目经理交待的其他工作。 岗位要求: 1、认同企业文化,有良好的服务意识和职业素养

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值