写点什么

ImageNet Training in Minutes

  • 2019-11-29
  • 本文字数:995 字

    阅读完需:约 3 分钟

ImageNet Training in Minutes

摘要与介绍


目前,缩短 DNN 的训练时间是一个热点,通用的方法聚焦于开发一种新的训练算法可在保证不损失精确性的前提下增大 batch 的大小,当然这些方法基本都基于数据并行的同步 SGD 进行参数更新。这其中经历了 batch_size 从 1K 到 8K,再增大到 32K 的过程。本文通过 LARS 算法使用 1000 个 cpu 在 11 分钟内完成了 100 个 epoch 的 Imagenet 训练集的训练,模型是 AlexNet,batch 设的是 32K,取的了 58.6%的 accuracy。另外在 resnet50 模型上,通过 64 个 epoch 的训练,在 14 分钟之内取得了 74.9% top-1 test 集的 accuracy 。另外,当 batch_size 大于 16K 时,通过 LARS 算法训练的准确率要高于 Facebook 的一小时训练 imagenet 那篇文章中的结果。如下图:



本文提出的算法使用了两个硬件:Intel Skylake CPU 和 Intel KNL(通用的深度学习加速器)。看到这心凉了,又是硬件在支撑。。。


计算通信比是指模型的计算代价/通信代价,一般计算通信比越高,越容易通过分布式来进行加速。如下表:ResNet50 的计算通信比要高于 AlexNet,所以 ResNet50 的分布式训练加速效果要好。另外大的 batch_size 可以减小通信代价,因为大的 batch 意味着更少轮次的迭代。



本文使用的方法是:LARS + Warmup。


下面具体介绍下 LARS 算法:


标准的 SGD 对于网络的每一层都使用相同的学习率 LR,当学习率很大时,更新的幅度会很大,容易导致发散的情况。这就使得模型在最初阶段对于 weight 的初始化和学习率设置显得十分重要。另外权重与梯度的 L2-norm 比 在不同 weight、layer 见变动很大。



warm-up 方法会在一开始先从小的学习率开始,然后逐步增大到大的学习率。LARS 则会对于每一层使用一个 local 学习率 [公式] :



其中 [公式] 是整体的学习率,[公式]是每一层的学习率,计算方法为:



如果加上 weight decay 参数 [公式] 后,上式可写成:



完整的 LARS 算法为:



实验结果:


这里就贴一个 resnet50 的结果吧,可以看出使用 LARS 算法可以将 batch size 扩展到 32k,另外还可以使用更廉价的芯片进行计算。使用 512 个 Intel KNL 可在 1 个小时内完成训练。512 个 KNL 按照市场价是 120 万美金,远远低于之前 Facebook 的 410 万美金 (32 台 NVIDIA DGX 工作站)。



与其它方法的对比:



参考文献:


https://arxiv.org/pdf/1709.05011.pdf


https://arxiv.org/pdf/1708.03888.pdf


本文转载自 Alex-zhai 知乎账号。


原文链接:https://zhuanlan.zhihu.com/p/81243154


2019-11-29 08:00884

评论

发布
暂无评论
发现更多内容

ipfs挖矿用什么app?ipfs挖矿收益计算器怎么看?

ipfs挖矿用什么app ipfs挖矿收益计算器怎么看

Filecoin挖矿收益高涨,Filecoin挖矿收益怎么计算?

区块链 分布式存储 IPFS filecoin挖矿 filecoin收益

Filecoin未来会涨到多少?Filecoin挖矿现在入场合适吗?

区块链 分布式存储 IPFS fil大涨 filecoin挖矿

网络攻防学习笔记 Day121

穿过生命散发芬芳

网络安全 8月日更

一上来就主从、集群、哨兵,这谁受得了

阿Q说代码

redis 命令 8月日更 五大基础类型

无代码是什么?

低代码小观

无代码开发 无代码 无代码平台

华为3位大咖吐血整理出600多页Spring微服务架构设计

Java~~~

Java spring 架构 面试 微服务

Paxos理论介绍(1): 朴素Paxos算法理论推导与证明

OpenIM

财经大课:商业的边界

石云升

8月日更 财经思维

低代码是什么?

低代码小观

低代码 低代码开发平台

InfoQ引航计划|合集排版规范

InfoQ写作社区官方

引航计划

前阿里P8狂总结出1000页Java面试核心原理+框架篇笔记

Java~~~

Java spring 架构 面试 微服务

架构实战训练营模块六作业

Clarke

瞬间登上牛客网热榜榜首!腾讯内部68W字Netty全栈宝典简直太香了

Java 编程 架构 面试 Netty

绿色篮子小程序开发

(王经理)专业app小程序开发

接口管理进阶-环境变量的使用

CodeNongXiaoW

大前端 测试 后端 接口文档 接口管理

熟悉Linux tail 命令

林十二XII

信息安全等级保护四级常见问题解答

行云管家

网络安全 信息安全 堡垒机 等级保护

漫游语音识别技术——带你走进语音识别技术的世界

RTE开发者社区

语音识别

万题库小程序开发

(王经理)专业app小程序开发

云时代,用对工具就能让云上运维工作事半功倍!

行云管家

云计算 云服务 混合云 云时代 云运维

如何做好Clickhouse集群的监控覆盖?

BUG侦探

大数据 Clickhouse 监控系统

安卓主板RK3288 RK3128 RK3399有哪些特点?

双赞工控

安卓主板 rk3288主板 rk3399主板 rk3128主板

fil挖矿步骤教程是什么?fil挖矿规则是什么?

fil挖矿步骤教程是什么 fil挖矿规则是什么

百度智能云天工物联网支持多种类数据传输!MQTT助力数据、语音、视觉应用智能化

百度开发者中心

产品 最佳实践 前沿技术 企业资讯

重磅升级!融云推出 IM+RTC+X「全」通信解决方案

融云 RongCloud

开发者 音视频 通信 即时通讯

面试工长

escray

生活记录 8月日更 装修记

javaer 徒手撸一个 python 语言的分布式 rpc

awen

Python 微服务 RPC

牛皮了!华为世界顶级Linux大牛总结出了3788页进阶笔记

Java~~~

Java Linux 架构 面试 运维

燃炸!字节跳动成功上岸,只因刷爆LeetCode算法面试题

Java~~~

Java 架构 面试 算法 LeetCode

InfoQ引航计划|文章排版规范

InfoQ写作社区官方

ImageNet Training in Minutes_语言 & 开发_Alex-zhai_InfoQ精选文章