当前位置: 首页 > 编程日记 > 正文

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饼图入门篇源码

出处&#xff1a;www.knowsky.com 作者&#xff1a;www.knowsky.com <script languageJavaScript src"/ad/ad.js"></script> topn3dpie.aspx------------------<% Page language"c#" CodeBehind"topn3dpie.aspx.cs" AutoEventW…

【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理

本系列文章由zhmxy555编写&#xff0c;转载请注明出处。 http://blog.csdn.net/zhmxy555/article/details/7405479作者&#xff1a;毛星云 邮箱&#xff1a; happylifemxyqq.com 欢迎邮件交流编程心得上一节我们讲解了键盘消息处理相关的知识。键盘加鼠标作为目前人机交互…

当最懂 5G 的中国移动遇见云,移动云专题赛正式启动!

根据《中国云计算产业发展白皮书》预测&#xff0c;2023年中国云计算产业规模将超过3000亿人民币&#xff0c;其中&#xff0c;中国政府和企业上云率将超过60%。在国家新基建战略的大力推动下&#xff0c;5G和云计算迎来了巨大的发展契机。作为中国移动5G战略的重要组成部分&am…

spring配置文件详解【总结】

知其然&#xff0c;知其所以然 <?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服务器)

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

asp.net 2.0中用GRIDVIEW插入新记录

出处&#xff1a;www.knowsky.com 作者&#xff1a;www.knowsky.com <script languageJavaScript src"/ad/ad.js"></script> name"mq" marginwidth"0" marginheight"0" src"../../ad.html" frameborder"no…

我在攻克机器学习硕士学位的那些年

编者按&#xff1a;人工智能发展日趋成熟&#xff0c;也成为众多开发者职业生涯的首选方向。然而相较于其他领域&#xff0c;人工智能中的深度学习、机器学习、计算视觉、神经网络等技术更为错综复杂&#xff0c;进修难度也更胜一筹。对此&#xff0c;对于入门和想要进阶的学生…

POJ 3174 暴力枚举

思路&#xff1a; 暴力枚举三个点 判一判 搞定 &#xff08;x1*y1x2*y2&#xff09; 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科技大本营&#xff08;rgznai100&#xff09;“我发现&#xff0c;软件研发总会延期。”一流科技CEO袁进辉说。按照他的预期&#xff0c;深度学习框架OneFlow做两年就能开源给开发者检验&#xff0c;但时间向后延长了近一年半&#xff0c;“确实预计的不准…

在Win 2003中配置ASP.net环境

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

网页中的数学公式

无意中发现一个在网页中显示数学公式的解决方案,MathJax&#xff0c;太崇拜这些人了&#xff01;他们才是真正地IT人&#xff0c;哪像国内我们这些民工&#xff1f; 代码如下&#xff1a; <!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论坛时&#xff0c;如果没升级好&#xff0c;可能会出现各种各样的问题。比如登陆会员&#xff0c;但点“短消息”会出现错误&#xff0c;如下&#xff1a;提示&#xff1a;UCenter info: MySQL Query ErrorSQL:SELECT COUNT(*) FROM [Table]pm_members m WHER…

ASP.NET 如何操作文件

本文由chenyangasp版权所有&#xff0c;可以转载&#xff0c;复制&#xff0c;粘贴&#xff0c;并请注明出处&#xff0c;但不得修改&#xff01; 在asp.net操作文件的所有concept都在system.io namespace中&#xff0c;这个namespace包含读写操作文件所必需的类。 本文将详细…

摊牌了:我就靠这几点,搞定了算法面试官

很多时候&#xff0c;你即使提前复习了这些最常见的面试算法题&#xff0c;你依旧无法通过算法面试&#xff01;为什么&#xff1f;1. 你在提前准备复习的时候&#xff0c;在网上找了半天相应题目的分析文章&#xff0c;但你看了就是不懂。2. 你在面试的时候&#xff0c;卡壳了…

Spoooooky CSS 选择器

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

关于无法创建aps.web项目的解决办法

出处&#xff1a;CSDN 作者&#xff1a;ahking <script languageJavaScript src"/ad/ad.js"></script> 1、当站点主目录没有创建应用程序&#xff1a; 通过FP扩展虚拟目录的方式来建立WEBAPP,步骤如下&#xff1a; &#xff08;1&#xff09;、右击站…

国内ntp时间服务器ip地址

NTP&#xff08;Network Time Protocol&#xff09;是由美国德拉瓦大学的David L. Mills教授于1985年提出&#xff0c;除了可以估算封包在网络上的往返延迟外&#xff0c;还可独立地估算计算机时钟偏差&#xff0c;从而实现在网络上的高精准度计算机校时&#xff0c;它是设计用…

谷歌顶级量子科学家详述他为何从谷歌辞职

加州大学圣塔芭芭拉分校&#xff08;UCSB&#xff09;的教授John Martinis作者 | Paul Smith-Goodson译者 | 天道酬勤&#xff0c;责编 | Carol 约翰马丁尼斯&#xff08;John Martinis&#xff09;教授从Google辞职的消息在整个量子学界引起了轩然大波。消息宣布几天后&#x…

论文笔记之:Generative Adversarial Text to Image Synthesis

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

ADO.NET 2.0 中的架构

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

Android实现程序前后台切换效果

本文演示如何在Android中实现程序前后台切换效果。 在介绍程序实现之前&#xff0c;我们先看下Android中Activities和Task的基础知识。 我们都知道&#xff0c;一个Activity 可以启动另一个Activity,即使这个Activity是定义在别一个应用程序里的&#xff0c;比如说&#xff0c;…

如果特斯拉制造相机的梦想像激光雷达一样真正实现,它可能会帮助到更多同行...

这张来自伪激光雷达论文的图片显示了旧的黄色实点云作者 | Brad Templeton译者 | 天道酬勤&#xff0c;责编 | Carol特斯拉 CEO 埃隆马斯克&#xff08;Elon Musk&#xff09;对自动驾驶激光雷达&#xff08;3D图像技术&#xff09;的看法是众所周知的。他不打算在特斯拉里使用…

java分享第五天(数组)

1 声明数组变量&#xff1a; double[] mylist; or double mylist[]; 2 创建数组&#xff1a; 可以通过使用new运算符使用以下语法创建一个数组&#xff1a; arrayRefVarnew dataType[arraySize]; 上面的语句做了两件事&#xff1a; 它创建一个数据使用new dataType[…

效率!效率!效率!

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

Android UI Button 和GridView 的设计--优化(2)

Android 按钮的UI设计&#xff0c;ListView 以及GridView的UI设计 一.按钮的状态 我们一般搞UI设计,按钮通常有三个状态&#xff1a;normal(正常状态);focus(焦点状态),pressed(按下状态)。如下图所示: 我们会在res/drawable目录下定义一个资源文件&#xff0c;比如我们本例中要…

玩转社区开源贡献,看这篇就够了!

来源 | TensorFlow本文来自社区投稿与征集。作者唐源&#xff0c;现任蚂蚁集团技术专家&#xff0c;目前专注于建立 AI 基础架构和自动机器学习平台。本文转自&#xff1a;https://zhuanlan.zhihu.com/p/165098355作为最早一批非谷歌的 TensorFlow 社区贡献者&#xff0c;同时也…