专栏首页润风拂过存甘霖深度学习哪家强?用数据来一较高下吧

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/blmoistawinde/article/details/87384348

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

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

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

参赛选手

以下是参赛的选手们,是我了解的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来衡量。

比赛结果

名声

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

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

活力

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

最后

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

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

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

关于技术: 爬虫-requests,可视化-echarts,网站-Flask 本文代码详见:https://github.com/blmoistawinde/hello_world/tree/master/DL_popularity_dashboard

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 困惑度(perplexity)的基本概念及比较多种模型下的计算(N-gram, 主题模型/LDA, 神经网络/RNN)

    发现网络上流传的关于困惑度(perplexity)大多数都是利用了N-gram或者主题模型的例子来阐述的。但是现在这个年代来学习这个指标的人多半都是想研究神经网...

    blmoistawinde
  • pyDatalog: python的逻辑编程引擎【四:从文件中加载和执行程序】

    之前的教程中,所有的操作,包括定义数据等都是在python里面进行的。但是当我们处理庞大的知识库的时候,我们肯定不希望把所有的数据都写在一个py文件里,而是希望...

    blmoistawinde
  • HarvestText

    本人的作品,在Github上开源,欢迎大家使用:https://github.com/blmoistawinde/HarvestText

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

    本人现在还是一个初识深度学习的小白。初学者总是会面临选择的纠结,尤其是对看似高深的深度学习,有着众多开源框架可供选择,但自己又没有能力评估。于是我看了许多比较文...

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

    作者介绍:blmoistawinde,喜欢有意思的数据挖掘分析,本文首发于:https://blog.csdn.net/blmoistawinde

    周萝卜
  • 电影封面海报个性化推荐+人工智能设计师

    本文结合Netflix的个性化推荐案例,继续谈《人工智能设计师》的应用。 ? Netflix,让每个用户都看到不一样的电影海报 这家视频网站在最近宣布了他们利用...

    mixlab
  • 别学什么土味情话了,唐诗才能帮你撩到女神

    知晓君
  • 循环神经网络(RNN)是如何循环的?

    循环神经网络(RNN:Recurrent Neural Network)是一种主要用于处理和预测序列数据的神经网络。

    enenbobu
  • 编写前置和后置条件的连贯接口库:CuttingEdge.Conditions

    当调用一个方法时,在其执行之前期望其处于特定状态; 也需要完成一些工作之后验证结果的状态。 这些假设被称为前置条件(pre-conditions )和 后置条件...

    张善友
  • 写代码的设计师 之 建筑 × 参数化设计

    美国访学期间,他最难忘的经历是那段每天从日出到日落,即使是做饭时都在啃着英文代码书籍的日子。放弃境外建筑事务所实习的机会,放弃旅游的机会,放弃了很多东西,冒险从...

    mixlab

扫码关注云+社区

领取腾讯云代金券