18 分钟训练 ImageNet 复现代码

栏目: Python · 发布时间: 6年前

内容简介:由 fast.ai 学员 Andrew Shaw、DIU 研究员 Yaroslav Bulatov 和 Jeremy Howard(fast.ai 创始研究员)组成的团队在项目地址:https://github.com/diux-dev/imagenet18fast.ai 使用了 16 个 AWS 云实例(每个实例使用 8 个英伟达 V100 GPU)来运行 fastai 和 PyTorch 库。这一速度打破了在公共基础架构上训练 Imagenet 达到 93%准确率的速度记录,且比谷歌在 DAWNBen

由 fast.ai 学员 Andrew Shaw、DIU 研究员 Yaroslav Bulatov 和 Jeremy Howard(fast.ai 创始研究员)组成的团队在 18 分钟内成功完成训练 Imagenet 的任务,准确率达到 93%。本文介绍了 Yaroslav Bulatov 刚刚放出的复现代码。

项目地址:https://github.com/diux-dev/imagenet18

fast.ai 使用了 16 个 AWS 云实例(每个实例使用 8 个英伟达 V100 GPU)来运行 fastai 和 PyTorch 库。这一速度打破了在公共基础架构上训练 Imagenet 达到 93%准确率的速度记录,且比谷歌在 DAWNBench 竞赛中使用其专有 TPU Pod 集群的训练速度快 40%。该团队使用的处理单元数量和谷歌的基准(128)一样,运行成本约 40 美元。

项目贡献者 yaroslavvb 正是该团队的成员之一:

18 分钟训练 ImageNet 复现代码

运行要求:

  • Python 3.6 或更高版本

依赖:

  • awscli

  • boto3

  • ncluster

  • paramiko

  • portpicker

  • tensorflow

  • tzlocal

pip install -r requirements.txt
aws configure (or set your AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/AWS_DEFAULT_REGION)
python train.py # pre-warming
python train.py 

如果想要用更少台机器执行训练,可以使用以下选项:

python train.py --machines=1
python train.py --machines=4
python train.py --machines=8
python train.py --machines=16

检查进度

机器会打印进度到本地 stdout,以及记录TensorBoard 事件文件到 EFS。你可以:

  • 使用 工具 或 launch_tensorboard.py 来运行TensorBoard

这将提供到TensorBoard 实例的链接,其拥有「losses」组的损失函数图。你将在「Losses」标签下看到这样的结果:

使用运行期间打印出的指令来连接到其中一个实例:

2018-09-06 17:26:23.562096 15.imagenet: To connect to 15.imagenet
ssh -i /Users/yaroslav/.ncluster/ncluster5-yaroslav-316880547378-us-east-1.pem -o StrictHostKeyChecking=no ubuntu@18.206.193.26
tmux a

这将连接到 tmux 会话:

.997 (65.102) Acc@5 85.854 (85.224) Data 0.004 (0.035) BW 2.444 2.445
Epoch: [21][175/179] Time 0.318 (0.368) Loss 1.4276 (1.4767) Acc@1 66.169 (65.132) Acc@5 86.063 (85.244) Data 0.004 (0.035) BW 2.464 2.466
Changing LR from 0.4012569832402235 to 0.40000000000000013
Epoch: [21][179/179] Time 0.336 (0.367) Loss 1.4457 (1.4761) Acc@1 65.473 (65.152) Acc@5 86.061 (85.252) Data 0.004 (0.034) BW 2.393 2.397
Test: [21][5/7] Time 0.106 (0.563) Loss 1.3254 (1.3187) Acc@1 67.508 (67.693) Acc@5 88.644 (88.315)
Test: [21][7/7] Time 0.105 (0.432) Loss 1.4089 (1.3346) Acc@1 67.134 (67.462) Acc@5 87.257 (88.124)
~~21 0.31132 67.462 88.124

最后一个数字表示在第 21 个 epoch 时,本次运行获得了 67.462% 的 top-1 测试准确率和 88.124% 的 top-5准确率。

fast.ai 的主要训练方法是:fast.ai 用于分类任务的渐进式调整大小和矩形图像验证;英伟达的 NCCL 库,该库整合了 PyTorch 的 all-reduce 分布式模块;腾讯的权重衰减调整方法;谷歌大脑的动态批量大小的一个变体,学习率逐步预热(Goyal 等人 2018、Leslie Smith 2018)。该团队使用经典的 ResNet-50 架构和具备动量的 SGD。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Charlotte's Web

Charlotte's Web

E. B. White / Scholastic / 2004 / USD 0.01

This is the tale of how a little girl named Ferm, with the help of a friendly spider, saved her pig, Wilbur, from the usual fate of nice fat little pigs.一起来看看 《Charlotte's Web》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具