keras 作者 François Chollet 刚刚在 Twitter 贴出一张图片, 是近三个月来 arXiv 上提到的深度学习开源框架排行:
TensorFlow 排名第一, 这个或许并不出意外, Keras 排名第二, 随后是 CaffePyTorch 和 Theano, 再次是 MXNetChainer 和 CNTK
Chollet 在推文中补充, Kears 的使用在产业界和整个数据科学圈中最占主流, 产业既包括大公司也包括创业公司不过, 在研究社区, Keras 的份额要小很多
这个统计结果是使用 Google Search Index 得到的
这个排名让人想起来之前 François Chollet 晒的另外一次排名(时间范围是 2017 年 4 月到 7 月, 综合 Github 上 issueforkcontributors 等数据得到的活跃度), 也是 TensorFlow 和 Keras 排名第一和第二
不过, 在 Github 的那次排名, MXNetPyTorch 的名次明显上升
针对近三个月来 arXiv 的深度学习框架排名结果, 有人评论, 他很遗憾 Theano 排名如此靠后, Theano 是他的第一个框架
深度学习的图景总是在不断变化, Theano 是第一个被广泛采用的深度学习框架, 由 Yoshua Bengio 领导的 MILA 创建和维护但 2017 年 9 月, MILA 宣布将在 2018 年终止 Theano 的开发和维护 Theano 的离开不禁让人感慨, 这也是第一个退出舞台的流行框架
TensorFlow 性能并非最优, 为何如此受欢迎? 粉丝团!
在过去的几年里, 出现了不同的开源 Python 深度学习框架, TensorFlow 就属于其中典型, 由谷歌开发和支持, 自然引发了很大的关注
但需要指出, 根据香港香港浸会大学褚晓文教授团队在 2017 年推出深度学习工具评测的研究报告 基准评测 TensorFlowCaffeCNTKMXNetTorch 在三类流行深度神经网络上的表现(论文),TensorFlow 的性能在有些时候表现并非最佳:
仅用一块 GPU,FCN 上 CaffeCNTK 和 Torch 比 MXNet 和 TensorFlow 表现更好; CNN 上 MXNet 表现出色, 尤其是在大型网络时; 而 Caffe 和 CNTK 在小型 CNN 上同样表现不俗; 对于带 LSTM 的 RNN,CNTK 速度最快, 比其他工具好上 5 到 10 倍
通过将训练数据并行化, 这些支持多 GPU 卡的深度学习工具, 都有可观的吞吐量提升, 同时收敛速度也提高了多 GPU 卡环境下, CNTK 平台在 FCN 和 AlexNet 上的可扩展性更好, 而 MXNet 和 Torch 在 CNN 上相当出色
这一结果, 反而凸显出 TensorFlow 和谷歌强大的号召力, 以及已经形成的生态圈的积极拉动影响
在 2017 年初的这份报告中, 褚晓文教授指出, 硬件和软件同样重要, 仅仅有硬件是不够的, 没有好的软件, 硬件的效能发挥不出来, 这也是为什么今天有这么多深度学习软件, 它们的性能有如此大的差异
Torch 是很流行的软件, 2002 年就有了, 那时候还没有深度学习后来把深度学习做进去了 2014 年就是 Caffe, 微软 2015 年开源了 CNTK, 接下来谷歌也开源了他们相应的开发平台第三行是它的粉丝数量, 目前(2017 年 9 月)TensorFlow 的粉丝团是最庞大的, 有 6 万多个关注, 相对来讲, CNTKCaffe 加起来还没有 TensorFlow 有影响力最底下是开发平台的维护情况, 随着硬件的提升, 新的算法的提出, 每个软件都是要不断的更新换代的, TensorFlow 的更新是非常频繁的, 基本上每一两个月就会有一个新的更新, 代表着他们对软件平台的投入
而 Keras, 则是谷歌在 2017 年宣布, 将 Keras 作为 TensorFlow 的高级 API 这意味着 Keras 被包含在 TensorFlow 版本中及时更新除了 TensorFlow,Keras 也可以使用 Theano 或者 CNTK 作为后端
其他框架和公司合纵连横中国框架何时才能上榜?
大家可以点击上面的链接仔细看 TensorFlowCaffePyTorchMXNet 等框架在各种应用场景下的性能我们性能更好, 但为什么用的人还不是最多? 为了解决这个问题, 开放神经网络交换 (ONNX) 格式的发布于 2017 年 9 月横空出世
ONNX 最初由微软和 Facebook 联合发布, 后来亚马逊也加入进来, 并在 12 月发布了 V1 版本 ONNX 是一个表示深度学习模型的开放格式它使用户可以更轻松地在不同框架之间转移模型例如, 它允许用户构建一个 PyTorch 模型, 然后使用 MXNet 运行该模型来进行推理
开放神经网络交换 (ONNX) 的 Github 页面
ONNX 由微软亚马逊和 Facebook 等公司共同发起, 宣布支持 ONNX 的公司还有 AMDARM 华为 IBM 英特尔 Qualcomm 等谷歌不在这个阵营中并不令人惊讶 ONNX 从一开始就支持 Caffe2,Microsoft Cognitive Toolkit,MXNet 和 PyTorch, 但与其他开源项目一样, 社区也已经为 TensorFlow 添加了一个转换器
来源: https://yq.aliyun.com/articles/522038