PyTorch 1.6、TensorFlow 2.3、Pandas 1.1 同日发布!都有哪些新特性?


作者 | 肖智清
出品 | AI科技大本营(ID:rgznai100)
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论文十余篇,多个顶级期刊和会议审稿人。在国内外多项程序设计和数据科学竞赛上获得冠军。


更多精彩推荐 ?30名工程师,历时1300天打造,又一“国产”AI框架开源了 ?支付宝、微信支付回应被反垄断调查;搜狗宣布成立独立特别委员会;GNU nano 5.0 发布| 极客头条 ?V神演讲内容曝光!Defi、挖矿、行业应用更多主题大揭秘 ?PyTorch 1.6、TensorFlow 2.3、Pandas 1.1同日发布!都有哪些新特性? ?程序员必备基础:Git 命令全方位学习 ?公链还能这样玩?二次元、出圈与社区自治 点分享 点点赞 点在看
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 打好关键核心技术攻坚战 7903950
- 2 在南海坠毁的2架美国军机已被捞出 7808734
- 3 立陶宛进入紧急状态 卢卡申科发声 7713910
- 4 持续巩固增强经济回升向好态势 7617465
- 5 多家店铺水银体温计售空 7523269
- 6 奶奶自爷爷去世9个月后变化 7424854
- 7 仅退款225个快递女子已归案 7328647
- 8 日舰曾收到中方提示 7237777
- 9 中国中冶跌10.03% 7143484
- 10 我国成功发射遥感四十七号卫星 7039239










CSDN
