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论文十余篇,多个顶级期刊和会议审稿人。在国内外多项程序设计和数据科学竞赛上获得冠军。
推荐阅读
一键实现图像、视频卡通化,GAN又进化了
为什么说机器学习是预防欺诈的最佳工具?
Python 还能实现图片去雾?FFA 去雾算法、暗通道去雾算法用起来! | 附代码
程序员必备基础:Git 命令全方位学习
微软直播马上开始,近百岗位等你来,快戳进直播间
相关文章:

ENC28j60以太网芯片驱动程序简介
转载: 本介绍可分为三块内容: 1.以太网数据帧结构 符合IEEE802.3标准的以太网帧的长度是介于64-1516字节之间。主要由目标MAC地址、源MAC地址、类型/长度字段、数据有效负载、可选填充字段和循环冗余校验组成,另外在通过以太网介质发送数据包…

在ASP.NET中获取文件属性
www.chinacs.net 2001-8-13 中文C#技术站 在ASP.NET中获取文件属性(Retrieving File Information In ASP.NET)By Steven Smith 使用ASP.NET我们可以很容易的得到文件的相关信息,包括:文件名、路径、扩展名、大小和创建以及使用日…

javascript运动系列第九篇——碰撞运动
前面的话 碰撞可以分为碰壁和互碰两种形式,上篇介绍了碰壁运动,本文将从浅入深地介绍碰撞运动的互碰形式 碰撞检测 对于互碰形式的碰撞运动来说,首先要解决的是碰撞检测。对于矩形元素的碰撞检测前面的博文已经详细介绍过,下面主要…

Asp.Net 使用 GDI+ 绘制3D饼图入门篇源码
出处:www.knowsky.com 作者:www.knowsky.com <script languageJavaScript src"/ad/ad.js"></script> topn3dpie.aspx------------------<% Page language"c#" CodeBehind"topn3dpie.aspx.cs" AutoEventW…

【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理
本系列文章由zhmxy555编写,转载请注明出处。 http://blog.csdn.net/zhmxy555/article/details/7405479作者:毛星云 邮箱: happylifemxyqq.com 欢迎邮件交流编程心得上一节我们讲解了键盘消息处理相关的知识。键盘加鼠标作为目前人机交互…
当最懂 5G 的中国移动遇见云,移动云专题赛正式启动!
根据《中国云计算产业发展白皮书》预测,2023年中国云计算产业规模将超过3000亿人民币,其中,中国政府和企业上云率将超过60%。在国家新基建战略的大力推动下,5G和云计算迎来了巨大的发展契机。作为中国移动5G战略的重要组成部分&am…

spring配置文件详解【总结】
知其然,知其所以然 <?xml version"1.0" encoding"UTF-8"?> <beans:beans xmlns"http://www.springframework.org/schema/mvc" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance…

ucontext实现的用户级多线程框架3(实现echo服务器)
前面一篇文章实现了一个抢先式的用户级多线程框架,现在用那个框架编写一个echo服务, 因为只是个实验,所以代码写得比较杂乱,还有很多可能出错的情况也没有处理,这些在今后的进一 步研究中都会慢慢修改,下面…

asp.net 2.0中用GRIDVIEW插入新记录
出处:www.knowsky.com 作者:www.knowsky.com <script languageJavaScript src"/ad/ad.js"></script> name"mq" marginwidth"0" marginheight"0" src"../../ad.html" frameborder"no…
我在攻克机器学习硕士学位的那些年
编者按:人工智能发展日趋成熟,也成为众多开发者职业生涯的首选方向。然而相较于其他领域,人工智能中的深度学习、机器学习、计算视觉、神经网络等技术更为错综复杂,进修难度也更胜一筹。对此,对于入门和想要进阶的学生…
POJ 3174 暴力枚举
思路: 暴力枚举三个点 判一判 搞定 (x1*y1x2*y2) x1、y1、x2、y2为他们两两的差 //By SiriusRen #include <cstdio> using namespace std; int n,cnt; struct Point{int x,y;}point[888]; struct ans{int x,y,z;}ans[888]; int main…
TensorFlow、PyTorch夹缝之下:后浪的进击和野望
作者 | Just出品 | AI科技大本营(rgznai100)“我发现,软件研发总会延期。”一流科技CEO袁进辉说。按照他的预期,深度学习框架OneFlow做两年就能开源给开发者检验,但时间向后延长了近一年半,“确实预计的不准…

在Win 2003中配置ASP.net环境
作者:未知大家知道,Microsoft为了更好地预防恶意用户和攻击者的攻击,在默认情况下,没有将 IIS6.0 安装到 Windows Server 2003 家族的成员上。而且,当我们最初安装 IIS6.0 时,该服务在高度安全和"锁定…

网页中的数学公式
无意中发现一个在网页中显示数学公式的解决方案,MathJax,太崇拜这些人了!他们才是真正地IT人,哪像国内我们这些民工? 代码如下: <!DOCTYPE html><html><head><title>MathJax AsciiMath Test P…

php删除目录下的所有文件和目录
<?php /*** 递归实现删除目录下的所有的文件和文件夹* param $dir 要删除的目录* param bool $deleteRootToo 是否删除根目录 默认不删除http://www.manongjc.com/article/1333.html*/ function unlinkRecursive($dir, $deleteRootToo false) {if(!$dh opendir($dir)){re…

DZX2无法读取会员短消息
我们在升级Discuz论坛时,如果没升级好,可能会出现各种各样的问题。比如登陆会员,但点“短消息”会出现错误,如下:提示:UCenter info: MySQL Query ErrorSQL:SELECT COUNT(*) FROM [Table]pm_members m WHER…

ASP.NET 如何操作文件
本文由chenyangasp版权所有,可以转载,复制,粘贴,并请注明出处,但不得修改! 在asp.net操作文件的所有concept都在system.io namespace中,这个namespace包含读写操作文件所必需的类。 本文将详细…
摊牌了:我就靠这几点,搞定了算法面试官
很多时候,你即使提前复习了这些最常见的面试算法题,你依旧无法通过算法面试!为什么?1. 你在提前准备复习的时候,在网上找了半天相应题目的分析文章,但你看了就是不懂。2. 你在面试的时候,卡壳了…

Spoooooky CSS 选择器
2019独角兽企业重金招聘Python工程师标准>>> 让我们今年有一些万圣节主题的帖子精神!我会从超过 GRAVE.eR.CSS选择器中挑选一些将冻结你骨头的选择器。也许不可能,但他们至少有点怪异。 迟钝的猫头鹰选择器(the lobotomized owl s…

关于无法创建aps.web项目的解决办法
出处:CSDN 作者:ahking <script languageJavaScript src"/ad/ad.js"></script> 1、当站点主目录没有创建应用程序: 通过FP扩展虚拟目录的方式来建立WEBAPP,步骤如下: (1)、右击站…

国内ntp时间服务器ip地址
NTP(Network Time Protocol)是由美国德拉瓦大学的David L. Mills教授于1985年提出,除了可以估算封包在网络上的往返延迟外,还可独立地估算计算机时钟偏差,从而实现在网络上的高精准度计算机校时,它是设计用…
谷歌顶级量子科学家详述他为何从谷歌辞职
加州大学圣塔芭芭拉分校(UCSB)的教授John Martinis作者 | Paul Smith-Goodson译者 | 天道酬勤,责编 | Carol 约翰马丁尼斯(John Martinis)教授从Google辞职的消息在整个量子学界引起了轩然大波。消息宣布几天后&#x…

论文笔记之:Generative Adversarial Text to Image Synthesis
Generative Adversarial Text to Image Synthesis ICML 2016 摘要:本文将文本和图像练习起来,根据文本生成图像,结合 CNN 和 GAN 来有效的进行无监督学习。 Attribute Representation: 是一个非常具有意思的方向。由图像到文本,可…

ADO.NET 2.0 中的架构
Bob BeaucheminDevelopMentor 适用于:Microsoft ADO.NET 2.0Microsoft Visual Studio 2005C# 编程语言 摘要:了解在 ADO.NET 中对于从您的数据源访问元数据的增强支持。下载相关的 SchemasSample.exe 示例代码。 本页内容 深入了解新的公共元数据 API究…

Android实现程序前后台切换效果
本文演示如何在Android中实现程序前后台切换效果。 在介绍程序实现之前,我们先看下Android中Activities和Task的基础知识。 我们都知道,一个Activity 可以启动另一个Activity,即使这个Activity是定义在别一个应用程序里的,比如说,…
如果特斯拉制造相机的梦想像激光雷达一样真正实现,它可能会帮助到更多同行...
这张来自伪激光雷达论文的图片显示了旧的黄色实点云作者 | Brad Templeton译者 | 天道酬勤,责编 | Carol特斯拉 CEO 埃隆马斯克(Elon Musk)对自动驾驶激光雷达(3D图像技术)的看法是众所周知的。他不打算在特斯拉里使用…

java分享第五天(数组)
1 声明数组变量: double[] mylist; or double mylist[]; 2 创建数组: 可以通过使用new运算符使用以下语法创建一个数组: arrayRefVarnew dataType[arraySize]; 上面的语句做了两件事: 它创建一个数据使用new dataType[…

效率!效率!效率!
原著:Mark Davis 翻译:onefi 2004年4月21日 摘要: 此篇文章包括了一些在网页设计中时常用到的脚本。我们可以清晰的体会到其中的执行速度。这将有助于提高您的动态网页的速度。 导言: 自从有了IE4.0以后,我们所看到的…

Android UI Button 和GridView 的设计--优化(2)
Android 按钮的UI设计,ListView 以及GridView的UI设计 一.按钮的状态 我们一般搞UI设计,按钮通常有三个状态:normal(正常状态);focus(焦点状态),pressed(按下状态)。如下图所示: 我们会在res/drawable目录下定义一个资源文件,比如我们本例中要…
玩转社区开源贡献,看这篇就够了!
来源 | TensorFlow本文来自社区投稿与征集。作者唐源,现任蚂蚁集团技术专家,目前专注于建立 AI 基础架构和自动机器学习平台。本文转自:https://zhuanlan.zhihu.com/p/165098355作为最早一批非谷歌的 TensorFlow 社区贡献者,同时也…