18分钟内,人人可训练ImageNet

点击上方“深度学习与神经网络”,选择“置顶公众号”数组

重磅干货,第一时间送达服务器


在线深度学习课程fast.ai的创始人Jeremy Howard和本身的学生Andrew Shaw、以及国防创新部门DIU的Yaroslav Bulatov一块儿,用租来的亚马逊AWS的云计算资源,18分钟在ImageNet上将图像分类模型训练到了93%的准确率。微信


背景网络

在四个月前,fast.ai 团队在 DAWNBench 竞赛中取得了巨大成功,他们使用一个机器实现了最快的 Imagenet 训练速度。谷歌在竞赛中的表现也很抢眼,其使用还没有公开的 TPU Pod 集群赢得了整个 Imagenet 速度类别的冠军。fast.ai 团队使用单个机器的训练时间为三小时,而谷歌的 “TPU Pod” 集群仅用了约半小时。而在该比赛以前,在公有云(public cloud)上训练 ImageNet 须要花费数天。架构

实验架构ssh

快速迭代须要面临诸多挑战,好比:机器学习

  • 如何在没有大量可持续运行的昂贵实例时,在多台机器上轻松运行多个实验?分布式

  • 如何便捷地利用 AWS 的 EC2 Spot 实例(比通常实例便宜 70%)?每次使用该实例时都须要从零开始从新设置。oop

fast.ai 为 DAWNBench 竞赛构建了一个系统,包括用于启动和配置新实例、运行实验、收集结果和查看进展的 Python API。该系统还有一些更有趣的设计:学习

  • 未使用配置文件,而是利用 Python API 写代码来配置实验。所以,该团队可以使用循环(loop)、条件句(conditional)等来快速设计和运行结构化实验,如超参数搜索。

  • 围绕 tmux 和 ssh 写一个 Python API 封装,并启动 tmux 会话中的全部设置和训练任务。这方便后续登陆机器和链接 tmux 会话,以监控进展、修复问题等。

  • 一切「从简」:避免 Docker 等容器技术或 Horovod 等分布式计算系统。该团队未使用复杂的集群架构(这样的架构须要单独的参数服务器、存储数组、集群管理节点等),而是仅使用具有常规 EBS 存储卷的单个实例类型。

单独来看,DIU 面临一系列挑战,最终开发出一个具有类似动机和设计的集群网络,可以并行运行不少大规模训练实验。该 nexus-scheduler 解决方案受到 Yaroslav 在谷歌 Borg 系统上运行机器学习实验的经验启发。


一种简单的新训练技巧:rectangles!


逐步调整图像大小:fast.ai提出了在分类任务里要渐进式地调整图像大小(progressive image resizing),先用小图片训练,而后逐渐增大。

在验证中使用长方形图像:以往,人们在图像识别中都须要把原图剪成固定尺寸的正方形,而他们这一次所用的库会自动将固定尺寸的模型转换成动态尺寸模型,绕开了这一步。

以下图所示,左上是原图,右上是fast.ai使用的长方形图像,左下是标准方法裁剪的正方形,而右下是屡次裁剪方法裁出的正方形。


结果


综合以上种种,fast.ai 在 16 个 AWS 实例上用 18 分钟的时间完成 Imagenet 训练,计算总成本大约为 40 美圆(包括机器配置时间的成本)。可以在超过 100 万张图像的数据集上进行训练有不少好处。


更多内容,详见原文:

http://www.fast.ai/2018/08/10/fastai-diu-imagenet/


若喜欢“深度学习与神经网络”推送的文章,请扫描下方二维码关注公众号!



您好,欢迎关注深度学习与神经网络。本公众号会按期推送深度学习的教程以及人工智能最新发展状况。感谢你们的支持!
回复“教程”能够看到最新的深度学习教程。
回复“加群”能够加入深度学习交流群。
投稿或合做请加微信:sdxxqbf

本文分享自微信公众号 - AI MOOC人工智能平台(AIMOOC_XLAB)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索