大家知道,深度学习的发展和推进,在某种程度上也是一场框架的争夺战,其中 google 发布的 tensorflow 和 facebook 主力支持的 pytorch 是最耀眼的两颗明星。我们今天就来看看其中一位明星 pytorch,看看它为何值得学。
pytorch 强调从研究到生产。来源:https://pytorch.org/
根据官网介绍,pytorch 是一个开源的深度学习平台,提供从研究原型到生产部署的无缝路径(an open source deep learning platform that provides a seamless path from research prototyping to production deployment)。
pytorch 的流行度仅次于 tensorflow。而最近一年,在 github 关注度和贡献者的增长方面,pytorch 跟 tensorflow 基本持平。甚至,pytorch 的搜索热度持续上涨,加上 fastai 的加持,pytorch 无疑会得到越来越多的机器学习从业者的青睐。
流行度虽然可以说明问题,但是,你一定要知道更多,才能明白 pytorch 为什么值得学,你在什么情况下需要学习 pytorch 。
pytorch 关键发展节点
2017 年 1 月,facebook ai 研究团队发布 pytorch,一个基于 torch 的 python 工具包,专门用于 gpu 加速的深度学习编程。
2017 年 8 月,pytorch v 0.2.0 发布,引入广播、高级索引、高阶梯度、新图层,以及分布式训练等,前两者进一步方便了 tensor 与 numpy 互转。
2018 年 4 月,caffe2 代码合并到 pytorch。facebook 打算将 pytorch 的研究特性与 caffe2 的生产特性更好地结合起来。
2018 年 4 月,pytorch v 0.4.0 发布,新特性包括 tensor 和 variable 合并,强化 numpy 风格的 tensor 构建等,并正式支持 windows 系统。
2018 年 10 月,pytorch v 1.0.0 发布,融合 pytorch 自身灵活性、研究优势与 caffe2 的后端与应用能力、onnx 的框架转换能力于一体;同时 fastai v1.0 发布,可用单一 api 玩转常见深度学习应用,大大降低了深度学习的学习门槛。
2019 年 5 月,pytorch v 1.1 发布,提供了新的 api,原生支持 tensorboard 和自定义循环神经网络,并提升了性能。
pytorch 刚走过了 2 年 4 个月的时间,发展相当迅速。
pytorch 当前稳定版及相关配置。来源:https://pytorch.org/
受欢迎程度
jeff hale 4 月份在 medium 上发表了一篇文章,比较了 tensorflow、pytorch、keras 和 fastai 的流行度,全面涵盖职位需求、使用、学术研究和兴趣等维度。
jeff 根据多个招聘网站在线职位搜索、google trends、github 活跃度、arxiv 文章数、medium 文章数、quora 相关问题关注人数统计计算出了一个综合的增长分数。我们这里引用一下最终结果图片:
深度学习框架半年增长分数。(2018 年 10 月-2019 年 3 月)
可以看到 tensorflow 稳居第一,而 pytorch 表现也非常抢眼,未来的需求和发展非常值得期待。
pytorch 核心优势:动态计算图
pytorch 是一款强大的动态计算图模式的深度学习框架。大部分框架是静态计算图模式,其应用模型在运行之前就已经确定了,而 pytorch 支持在运行过程中根据运行参数动态改变应用模型。
可以简单理解为:一种是先定义后使用,另一种是边使用边定义。动态计算图模式是 pytorch 的天然优势之一,google 今年 3 月份发布的 tensorflow 2.0 alpha 版本中的 eager execution,被认为是在动态计算图模式上追赶 pytorch 的举措。
静态计算图模式框架在执行计算图之前需要先声明和编译。 虽然在实际生产中这种实现比较高效,但在研究和开发中非常繁琐。
以 pytorch 为代表的动态计算图框架则无需在每次执行之前编译模型。在建模 nlp 任务时,每个输入都可能导致不同的图结构,因此动态图就绝对占优了——这也是 pytorch 在处理很多问题上(尤其是 rnn 相关问题)更高效的原因。
此外,动态图机制在调试方面非常方便,基本上,如果计算图运行出错,就可以在堆栈跟踪定义图的代码行。有人形容调试 pytorch 就跟调试 python 一样,通过断点检查就可以高效解决问题。
pytorch 更多优势
无缝接入 python 生态圈,张量、变量与 numpy 互转
在张量之上封装变量,方便构建神经网络
强大的后端功能
命令式编程风格
扩展性极好
广泛应用于 nlp 之外的多种深度学习应用
富有活力的社区和背后大厂 facebook 支持
PCB线路板如何设计美观 浅谈电路板的回收
EMC计算方法和EMC仿真(8)三维(3D)制图
维思资本连续三年走在行业前沿,获“中国顶级风险投资机构”称号
!租售/收购/维修HP8594E频谱分析仪HP8594E 小
从“制造”到“智造”的升级,需要与AI进行深度融合
深度学习框架PyTorch 关键发展节点概览
解析智能扫地机器人中蕴含的情感元素
大唐电信大老板是谁_大唐电信是国企吗
三星Note7爆炸之后翻新Note7现身越南 搭载安卓7.0系统
爆款课程【LTspice在放大器电路仿真中的应用】进阶版上线,火速码!
微软发布两款新控制器 能模拟VR体验下真实触觉
一文搞懂神经隐式SLAM方法
折弯机激光保护装置的维护与保养
小米40吋电视新品到底值不值得买?
交流伺服电机的分类、特点及其闭环驱动
东进通讯贺建楠:海外3G市场仍有很大潜力
小米MIX2什么时候上市?小米MIX2月底来袭,只为挽救小米6残局?
内存之后,下一代存储技术怎么用?
手动变速器优缺点
锐龙2700和8700谁好 全方位对比评测