如何评价 PyTorch 1.0 Roadmap?

2018年5月2日,PyTorch团队发布了PyTorch 1.0的蓝图: 


西西吹雪提问于 2018-05-15 09:37
1 个回答
  • 社区编辑2018-05-15 09:39

    谷歌大脑工作人员 Hieu Pham (尚未广泛使用 PyTorch)在 Quora 上提出:PyTorch 并非整体最佳的深度学习框架。当然他认为 TensorFlow 需要适应。他最后的忠告是:没有整体最佳的深度学习框架(如同没有整体最好的编程语言),不要因为某工具难以学习和使用而拒绝该工具,应当根据经验和资源找到最适合自己的工具。理由如下:


    • PyTorch 没有更易于学习,只是它更像大家所期待的。PyTorch 相对于 TensorFlow 或 Theano 等涉及构建静态图(static graph)的框架显得更为易用,并不是因为其设计更好,更多的是因为 PyTorch 提供了一个更接近命令式编程范式(群众基础更好)的平台。而对于 TensorFlow,用户足够了解它时,调试会更加容易。
    • PyTorch 并非无所不能。Hieu Pham 以 PyTorch 难以复现自己一篇强化学习应用论文的试验结果作为案例说明。主要是 PyTorch 对大规模分布式学习支持不好 - 在 640 台 CPU*1 + GPU*4 的计算机上运行 640 个副本,rewards 必须收集并发送给包含强化学习代理的 641-st GPU,梯度必须收集和同步。
    • PyTorch 也有难以理解的地方。比如 @ 符号的含义,未找到任何官方文档解释这个符号的用法。


    一位有20年神经网络经验的高级数据科学家 Marco Fabiani 则表示,已经入坑 PyTorch (Python 环境),弃坑使用一年多的 Tensorflow,当然 C 环境下他更喜欢 Caffe。理由还是 PyTorch 易用 - 从零开始使用 PyTorch 一周,工作效率比使用 Tensorflow 几个月还要高 - Marco Fabiani 注重完全控制训练过程,比如训练过程中修改梯度,删除/添加连接,某些权重设置为 0,而 Tensorflow 的静态图无法支持这些,sessions, graphs, collections 带来的是不必要的过度复杂。


    注:TensorFlow 已经引入动态计算选项 Eager Execution,但目前 TensorFlow 仍以静态计算为主。


    我想说的是,谷歌为 TensorFlow 进行了大量的投资,为深度学习的普及做了很大的贡献,而 PyTorch 才刚刚开始,有需要优化的地方不足为奇,但以大规模分布式学习这种“土豪级”特性来评判目前的框架优劣并不合适,先完善单机多卡,再搞多机多卡,是一个正常的 Roadmap,其实现在很多训练都不是多机的。


    当然 Hieu Pham 说得没错,数据科学工作者确实应当选择最合适自己的工具,比如网易猛犸一站式大数据管理和应用开发平台,覆盖了大规模数据存储与计算、数据集成、应用开发及数据管理等企业大数据应用场景,其设计强调敏捷、易用、一站式应对多场景,就是希望让数据科学工作者能够低门槛、快速开展工作。