深度学习哪家强?用数据来一较高下吧

来自:数据森麟(微信号:shujusenlin),作者:blmoistawinde
作者介绍:blmoistawinde,喜欢有意思的数据挖掘分析,本文首发于:https://blog.csdn.net/blmoistawinde

前言

 

本人现在还是一个初识深度学习的小白。初学者总是会面临选择的纠结,尤其是对看似高深的深度学习,有着众多开源框架可供选择,但自己又没有能力评估。于是我看了许多比较文章,其中涉及各种层面的比较(数据结构、使用范围、实现细节),让姿势水平还远远不够的我看得眼花缭乱。


作为一个数据玩家,我想到,不妨让它们在大数据的战场上一较高下。这样我们就能够很轻松地从清晰的数据中作出我们的选择了。


参赛选手


以下是参赛的选手们,是我了解的python上的一些著名深度学习框架:


 Google支持的tensorflow

 Facebook支持的pytorch

 高层封装,简单易用的Keras

 微软加持的CNTK

 亚马逊选择的mxnet

 百度打造的PaddlePaddle

 最老牌的Theano


比赛规则


数据来自Github上这些框架的repo。上面Star数等数据,虽然不是框架好坏的直接反应,但肯定体现了潮流。跟着潮流走总不会有大错,就算学艺不精,总还能和别人谈笑风生。



然而star是一个累计量,还不能完全反映这些框架的近期热门度。这时,我们可以找到"Insight"栏目中的"Pulse"界面。正如它形象的名字(脉搏),其中有着一些能够反应其近期活跃度的数据,以tensorflow为例:



其中Active PRs可以反映近期开发者的活跃度,而Active Issues可以反映近期的使用者的活跃度(用的人越多问题总会越多吗)。

同样,让我们再为老态龙钟的Theano“把把脉”:


尽管Theano因为历史原因累计了不少star,但是因为已经官宣停更,近期很少有活动,奄奄一息。因此,它已经在我们的比赛中提前出局。


综上,我为剩下的选手指定了这些“比赛规则”:


 名声:直接用Star来衡量

 流行度:直接用Active Issues来衡量

 开发活力:反映框架完善提升的潜力。用Active PRs / Star来衡量。除以Star的原因是考虑到项目越大,做的开发工作肯定会更多,所以要做一个修正。

 使用活力:反映框架的相对其规模的流行度,较大的话也许可以期待用户数的继续增长。用Active Issues / Star来衡量。


比赛结果


01

名声


Tensorflow一骑绝尘,好用的keras也有不少簇拥,接着是pytorch等其他框架。


02

流行度




此处tensorflow依然是老大,但pytorch后来居上,接近能和tensorflow分庭抗礼了。这也与我近期的观感接近,近期开源的许多强大的NLP模型都提供了基于pytorch的实现,相信也带动了其热度。剩下keras,mxnet,paddlepaddle的流行度差不多,但还有一位CNTK,流行度与以上完全不在一个数量级上,这是要凉的节奏吗?我不能猜测具体原因。


03

活力



在这个指标下,百度的PaddlePaddle表现亮眼,虽然有分母(star)较少的因素,但是其很高的开发活跃度还是会让人期待其未来的发展,pytorch和mxnet也是同理,特别是pytorch使用活跃度极高,相信与近期基于其上的许多开源项目吸引了许多用户不无关系。tensorflow和keras的用户基数比较大,也相对成熟,活力较低。CNTK在此处依然凉凉……


总结


本文不作为专业的建议,但希望能对跟我一样选择困难的深度学习小白提供一些帮助,比如我现在就对pytorch很感兴趣了。不知道大家心中最好的框架又是什么呢?


我也做了一个以上图表的每日更新面板: http://blmoistawinde.pythonanywhere.com/DL_pop


也许框架的更新,会让大牛们现在的基于技术的优劣分析不再适用,但我相信实时的潮流总会有一定的参考价值。曾经深度学习是TF的一家独大,现在PyTorch大有异军突起之势。或许我们可以时时看看这些框架们的战局,虽然还只是个吃瓜群众,但我很期待看看一年后深度学习框架的潮流又会如何呢?


关于技术:

 爬虫-requests

 可视化-echarts

 网站-Flask

推荐↓↓↓
人工智能与大数据
上一篇:了解模式识别 下一篇:2019 年,Python 数据科学该怎么学