博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《白话深度学习与TensorFlow》——3.4 如何选择好的框架
阅读量:5881 次
发布时间:2019-06-19

本文共 1171 字,大约阅读时间需要 3 分钟。

3.4 如何选择好的框架

作为计算模型来说,深度学习中的绝大部分基本理论早已沉淀成了固化的计算模块、函数或者算法包。就计算模型本身来说,框架之间的差别不会太大,也不可能太大,除非这个领域的理论层面得到了极大的突破,而且这个突破还是不同方向且掌握在个别组织手里的。而现在框架之间的差别主要出现在这几个地方。

第一,性能方面。
这一属性主要由底层的实现语言决定,底层运行比较快的仍旧是实现的语言。理论上说,运行速度最快的仍旧是C或C++一类,离着CPU指令近一些语言效率高一些。
笔者用过Torch、TensorFlow、Chainer、Caffe等多种框架,虽然没有经过系统地压测和对比以及时下流行的跑分测试,但仍然有个比较感性的感觉——相同情况下Torch运行的速度略快一些,而TensorFlow老实说确实不能算快的甚至是这几款里面比较慢的。不过笔者从来不觉得这是什么大问题,这种效率的差距仅仅是零点几倍或者一点几倍,而真正在工程实现方面的差距大多来自样本数量、网络设计等方面,这些方面的差距可能都是一两个数量级的(差10倍或者100倍),所以这种效率不是最重要的参考标志。
第二,社区活跃度。
这些开源的项目虽然多,但是社区活跃与否是个非常重要的因素,甚至几乎是首选的因素。活跃的社区意味着有更多的人正在使用这样一个项目,会有更多的人贡献代码,提交Bug,遇到错误你也很容易找到前人踩坑留下的垫坑石。因而做起项目来风险也相对比较小,学习起来进步也会快一些。
第三,语言。
这几乎是最不重要的一个方面,因为不管什么语言,实现的框架大多都会支持Python的“驱动”,或者我们称接口。当然也有很多比较执拗的框架只提供人家自己原生的接口,例如Torch只支持Lua脚本,CNTK只支持C++等。
说它不重要是因为,在这样一个应用场景中网络建立的逻辑比较有限,所以涉及的语法内容也非常有限,学习成本也不高,反正从逻辑和模型层面是没有差别的。
应该说TensorFlow在这些方面做得还都是令人满意的。首先它有着非常活跃的社区:www.tensorflow.org,主页的日均PV有40到50万之多。这对于一个小众化的技术网站已经是个不得了的数字了。
image

它的英文社区比中文社区活跃得多,而且在Stackoverflow上的问题讨论也非常多,目前有8000多个被跟帖的帖子,每天都会有不少新帖出来,所以在成功的路上你不会孤单。

image

语言嘛,Python肯定是首选,笔者大多是使用Python 2.7+ TensorFlow的方式来工作的,很方便。

性能就像我刚才所说的,虽然感觉上并不快,但是满足目前的工作已经足够了。而且这种数量级的效率提升是无法通过更换一个框架来实现的。
总体来说TensorFlow应该是所有深度学习框架中比较适合用来进行工程应用的。

转载地址:http://pzjix.baihongyu.com/

你可能感兴趣的文章
for/foreach/linq执行效率测试
查看>>
js /jquery停止事件冒泡和阻止浏览器默认事件
查看>>
长春理工大学第十四届程序设计竞赛(重现赛)I.Fate Grand Order
查看>>
好作品地址
查看>>
[翻译]Protocol Buffer 基础: C++
查看>>
runloop与线程的关系
查看>>
[Bzoj2246]迷宫探险(概率+DP)
查看>>
[译] 感受 4px 基线网格带来的便利
查看>>
oracle常用函数
查看>>
MYBATIS
查看>>
详解消息队列的设计与使用
查看>>
iOS 项目优化
查看>>
筛选出sql 查询结果中 不包含某个字符
查看>>
8进制与16进制
查看>>
使用Sqoop从mysql向hdfs或者hive导入数据时出现的一些错误
查看>>
mybatis:Invalid bound statement (not found)
查看>>
电脑中毒的现象
查看>>
django表单操作之django.forms
查看>>
webSocket vnc rfb
查看>>
列表推导式 生成器表达式
查看>>