APP下载

资源|18分钟训练ImageNet复现代码

消息来源:baojiabao.com 作者: 发布时间:2026-04-20

报价宝综合消息资源|18分钟训练ImageNet复现代码


选自 GitHub


作者:

yaroslavvb、bearpelican


机器之心整理





由 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 正是该团队的成员之一:







运行要求:






  • 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。






本文为机器之心整理,

转载请联系本公众号获得授权



?------------------------------------------------


加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com


投稿或寻求报道:

content

@jiqizhixin.com


广告 & 商务合作:bd@jiqizhixin.com




2018-09-12 07:31:00

相关文章