PyTorch 1.6、TensorFlow 2.3、Pandas 1.1 同日发布!都有
	7月29日,PyTorch 1.6、TenorFlow 2.3、Pandas 1.1恰巧同时发布。这三个库都是定期滚动更新,大约每个季度更新一次小版本。
	在AI内卷化达到“灰飞烟灭”的今日,仅仅会对PyTorch或TensorFlow进行调用已经不具有竞争力。所有研发者都需要同时了解PyTorch和TensorFlow,并精通其中一种,需要同时了解PyTorch和TensorFlow的原因在于:(1) 绝大多数情况下研发人员并没有太多选择框架的自由。选择PyTorch还是TensorFlow主要取决于团队积累和项目基础设施情况;(2) 如果你已经达到可以为团体选框架的程度,那在做选择时则需要同时熟悉PyTorch和TensorFlow的生态,才能做出较佳选择。
	精通PyTorch或是TensorFlow,则要求不仅仅会掉包调参,并且 (1) 具有较为丰富的分布式训练和调参经验,这个是目前大型研究必备技能;(2) 了解框架的内部实现,可以对框架的功能扩展或错误定位,能参与工程部署。而这两者都可以通过为PyTorch或TensorFlow贡献源码来积累经验(虽然前者可能需要依托实验室或大型企业的基础设施)。
	说到PyTorch 1.6,它的特性也涉及到分布式训练、部署等内容。PyTorch 1.6相比于上一稳定版本的更新包括:
	(1) 原生支持GPU混合精度训练(Automatic mixed precision,AMP),据说这个特性是NVIDIA团队加持的。
	(2) 分布式训练和RPC通信:TensorPipe原生的支持张量。TensorPipe是PyTorch分布式训练的通信工具,详情可参阅GitHub:pytorch/tensorpipe。还有其他分布式并行训练(Distributed Data Parallel,DDP)和(Remote Procedural Call,RPC)包的改进。
	(3) 复数张量运算和其他新的运算,如torch.logcumsumexp()、torch.logaddexp()、torch.rad2deg()、torch.deg2rad()、torch.arccosh()、torch.arcsinh()、torch.arctanh()等,新的激活层torch.nn.Hardswish。
	(4) 从张量层面分析内存消耗。
	PyTorch内存消耗分析示例
	import torch
	import torchvision.models as models
	import torch.autograd.profiler as profiler
	model = models.resnet18()
	inputs = torch.randn(5, 3, 224, 224)
	with profiler.profile(profile_memory=True, record_shapes=True) as prof:
	    model(inputs)
	# NOTE: some columns were removed for brevity
	print(prof.key_averages().table(sort_by="self_cpu_memory_usage", row_limit=10))
	# ---------------------------  ---------------  ---------------  ---------------
	# Name                         CPU Mem          Self CPU Mem     Number of Calls
	# ---------------------------  ---------------  ---------------  ---------------
	# empty                        94.79 Mb         94.79 Mb         123
	# resize_                      11.48 Mb         11.48 Mb         2
	# addmm                        19.53 Kb         19.53 Kb         1
	# empty_strided                4 b              4 b              1
	# conv2d                       47.37 Mb         0 b              20
	# ---------------------------  ---------------  ---------------  ---------------
	PyTorch 1.6也有一些和之前版本不兼容的改进。在数值方面主要包括整数除法的运算结果的改变。
	PyTorch除法行为变化示例
	PyTorch 1.5.1行为
	>>> torch.tensor(3) / torch.tensor(2)
	../aten/src/ATen/native/BinaryOps.cpp:81: UserWarning: Integer
	division of tensors using div or/ is deprecated, and in a future
	release div will perform true division asinPython3.Use true_divide
	or floor_divide (// in Python) instead.
	tensor(1)
	PyTorch 1.6行为
	>>># NB: the following is equivalent to
	>>># torch.floor_divide(torch.tensor(3), torch.tensor(2))
	>>> torch.tensor(3) // torch.tensor(2)
	tensor(1)
	TF团队和PyTorch团队的更新侧重点大同小异,更新也主要在分布式、性能监控等方面。tf.distribute.TPUStrategy在TF2.3成为了稳定API,性能监控也不约而同的增强了对内存的监控。在部署方面,tf.lite大大增强,针对Android和iOS的CPU/GPU性能都有优化。
	Pandas 1.1增加了许多方便的小函数。小编觉得最有用的两组更新是:(1) DataFrame.compare() 函数和Series.compare() 函数,可以很方便地比较两个DataFrame或是两个Series。(2) DataFrame排序可以基于关键字key了,排序灵活了不少。
	TensorFlow、PyTorch、Pandas这三个库作为AI开发者的必备库,目前都较为稳定,更新内容也基本在预料之中。它们的更新也充分体现了目前AI发展的趋势。在可预见的未来,这两个库都会继续成为AI开发的主力库。
	作者:肖智清,清华大学工学博士。著有《与PyTorch实战》《强化学习:原理与Python实战》。scipy、sklearn等开源项目源码贡献者。近7年发表SCI/EI论文十余篇,多个较高级期刊和会议审稿人。在国内外多项程序设计和数据科学竞赛上获得冠军。
		声明:文章收集于网络,版权归原作者所有,为传播信息而发,如有侵权,请联系小编删除,谢谢!
 
 时间:2020-08-04 00:25 来源: 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
相关文章:
- [机器学习]更深、更轻量级的Transformer!Facebook提出:DeLigh
- [机器学习]深度学习中的3个秘密:集成、知识蒸馏和蒸馏
- [机器学习]深度学习三大谜团:集成、知识蒸馏和自蒸馏
- [机器学习]加快PyTorch训练速度!掌握这17种方法,让你省时
- [机器学习]世界最大、最复杂的GPU!这颗集成1000亿个晶体管
- [机器学习]人工智能十年回顾:CNN、AlphaGo、GAN……它们曾这
- [机器学习]更深、更轻量级的Transformer!Facebook提出:DeLigh
- [机器学习]龙泉寺贤超法师:用 AI 为古籍经书识别、断句、
- [机器学习]机器学习基础图表:概念、原理、历史、趋势和算法
- [机器学习]深度学习中的3个秘密:集成、知识蒸馏和蒸馏
相关推荐:
网友评论:
最新文章
            
        热门文章
            
        
















