热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

224秒!ImageNet上训练ResNet50最佳战绩出炉,索尼下血本破纪录

夏乙岳排槐发自亚龙湾量子位出品|公众号QbitAI索尼大法好。索尼自己说。刚刚,索尼在arXiv上发文宣布:他们用224秒在ImageNet上完成了Re
夏乙 岳排槐 发自 亚龙湾
量子位 出品 | 公众号 QbitAI

640?wx_fmt=jpeg

索尼大法好。

索尼自己说。

刚刚,索尼在arXiv上发文宣布:他们用224秒在ImageNet上完成了ResNet-50训练,没有明显的准确率损失。

而且训练误差曲线与参考曲线非常相似。最大的mini-batch size可以增大到119K而没有明显的准确率损失,不过进一步增大到136K时准确率会降低约0.5%。

这是索尼给出的对比。

640?wx_fmt=png

 在ImageNet/ResNet-50上的训练时间和top-1 1-crop验证准确率对比。

从这个表格可以看出,斜刺里杀出的索尼,堪称完胜。比腾讯今年6月创造的成绩还要好。比前几年的成绩,更是多个数量级的进步。

关于上表中腾讯的成绩,有些同学可能会有疑问:不是4分钟吗?

情况是这样的,腾讯今年6月的“4分钟训练ImageNet”,指的是AlexNet网络;而上面列出的,是训练ResNet-50网络需要的时间和达到的准确率。

插播一个花絮,上表中腾讯公司的Xianyan Jia,现在已经供职于阿里巴巴了……

当然,索尼也是下了血本。为了达到这个成绩,动用了更多的GPU。不过索尼自己也说,他们的方法也能更有效的利用大规模GPU。

在训练速度和GPU规模效率上,索尼把自己的方法与单节点(4个GPU)进行了对比。下面这个表格显示了当mini-batch size设置为32时,不同GPU数量的效率。

640?wx_fmt=png

640?wx_fmt=png

 在ImageNet/ResNet-50上训练的GPU规模效率

如上表所示,当索尼使用1088个GPU时,规模效率超过90%。腾讯之前的工作中,使用1024个Tesla P40,GPU的规模效率为87.9%。

索尼表示,他们的互联方案能基于更快(Tesla V100)和更多的GPU,实现更高的GPU规模效率。

两件装备

更快的训练速度,更高的GPU规模化效率来自两件加速装备:

一是针对大批次(batch)训练不稳定问题的批次大小控制,二是2D-Torus all-reduce,降低了梯度同步的通信开销。

它们所解决的,正是困扰大规模分布式深度学习训练的两个问题。

所谓批次大小控制,是指在训练过程中逐渐提升批次的整体大小。每当训练的损失图变“平”,就提大批次,这样有助于避开局部最小值。

在这个224秒训练完ImageNet的方案中,批次大小超过32k时,索尼五人组用这种方法来防止准确率的下降。

2D-Torus All-reduce,是一种“高效的”通信拓扑结构。不像之前的Ring All-redice等算法,就算有上千个GPU,2D-Torus all-reduce也能完全利用它们的带宽。

640?wx_fmt=png

2D-Torus拓扑结构如上图所示。这种结构下,簇里的GPU排列在2D网格中,all-reduce由3步组成:1) 水平进行的reduce-scatter、2) 垂直进行的all-reduce、水平进行的all-gather。

640?wx_fmt=png

上面提到的两件加速装备,都是用索尼自家神经网络库Neural Network Libraries(NNL)实现的,这个库还有个可能稍微更为人所熟知一点的名字:nnabla

在nnabla这个名字里,nn代表神经网络(neural network)的缩写,而nabla代表梯度的数学符号∇。

2017年6月,索尼在GitHub上开源了这个库,repo名叫nnabla。它在GitHub上一直在活跃更新,现在有2000多星,226次fork。

nnabla基本用C++11写成,让用户能直观地用少量代码定义计算图,带有CUDA扩展,能添加新函数,支持动态计算图,可以在Linux和Window上运行。

地址在这里:https://github.com/sony/nnabla

最后,附上这篇224秒训练ImageNet/ResNet-50:

640?wx_fmt=png

ImageNet/ResNet-50 Training in 224 Seconds
https://arxiv.org/abs/1811.05233

年度评选申请

640?wx_fmt=jpeg

加入社群

量子位AI社群开始招募啦,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式;


此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。


进专业群请在量子位公众号(QbitAI)对话界面回复关键字“专业群”,获取入群方式。(专业群审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

640?wx_fmt=jpeg

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态




推荐阅读
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • ICRA2019最佳论文  Making Sense of Vision and Touch: SelfSupervised Learning of Multimodal Representatio
    文章目录摘要模型架构模态编码器自监督预测控制器设计策略学习控制器设计实验结论和展望会议:ICRA2019标题:《MakingSenseofVision ... [详细]
  • 安装Tensorflow-GPU文档第一步:通过Anaconda安装python从这个链接https:www.anaconda.comdownload#window ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
author-avatar
Chloemw
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有