ImageNet训练再创纪录!谷歌提出1个小时训练EfficientNet,准确率高达83%!

神经网络—EfficientNet(pytorch) EfficientNet-B0 的实现 阅读详情

点击上方,选择星标或置顶,不定期资源大放送!

阅读大概需要15分钟

Follow小博主,每天更新前沿干货

本文转载自:AI科技评论  |  注:文末附论文PDF下载


作者 | 青暮

近年来,随着深度学习走向应用落地,快速训练ImageNet成为许多机构竞相追逐的目标。

2017年6月,FaceBook使用256块GPU以1小时在ImageNet上成功训练了ResNet-50。在这之后,ResNet-50基本成为了快速训练ImageNet的标配架构。

2018年7月,腾讯实现用2048块Tesla P40以6.6分钟在ImageNet上训练ResNet-50。同年8月,Fast.ai实现了18分钟的快速训练,他们使用的硬件是128块Tesla V100。到11月,索尼更是将训练时间压缩为224秒,不过其当时使用了2176块Tesla V100。Fast.ai和索尼使用的网络架构也都是ResNet。

那么如今,在快速训练ImageNet的竞逐上,形成了什么局面呢?

1

ResNet霸榜,偶有对手

在DAWNBench的ImageNet训练排行榜上,我们可以看到,前五名都是使用了ResNet-50,并且最快训练时间达到了2分38秒,同时还能实现93.04%的top-5准确率,以及14.42美元的低训练成本。

DAWNBench 是斯坦福发布的一套基准测试,主要关注端到端的深度学习训练和推断过程,用于量化不同优化策略、模型架构、软件框架、云和硬件的训练时间、训练成本、推理延迟和推理成本。

排行榜地址:https://dawn.cs.stanford.edu/benchmark/ImageNet/train.html

但除了ResNet-50,就没有其它适合快速训练ImageNet的架构了吗?

在这个排行榜的第10位,我们看到了一个孤独的名字——AmoebaNet-D N6F256,根据排行榜的数据,它用1/4个TPUv2 Pod和1小时的时间在ImageNet上达到了93.03%的top-5准确率。

实际上,该架构在2018年4月就由谷歌提出,在相同的硬件条件下,AmoebaNet-D N6F256的训练时间比ResNet-50要短很多。

并且,AmoebaNet-D N6F256的训练成本也只有ResNet-50的一半。AmoebaNet-D是基于进化策略进行架构搜索的NAS架构,谷歌通过提供复杂的构建模块和较好的初始条件来参与进化过程,实现了手动设计和进化的有机组合。

论文:Regularized Evolution for Image Classifier Architecture Search

除此之外,在DAWNBench的排行榜上,就看不到其它类型的架构了。但是在Papers With Code的ImageNet排行榜上,就没有出现ResNet和AmoebaNet-D霸榜的现象。

在top-5准确率前五名中,可以注意到,除了ResNet以外,剩下的架构都和EfficientNet有关。其中排名第一的架构,其top-5准确率已经达到了98.7%。不过这个排行榜并没有列出训练时间、硬件和成本,所以和DAWNBench不能一概而论。

排行榜地址:https://www.paperswithcode.com/sota/image-classification-on-imagenet

EfficientNet近日在这项竞逐中也出现了新突破,新加坡国立大学的尤洋和谷歌研究院的Quoc Le等人发表了一项新研究,表示其用1小时实现了ImageNet的训练,并且top-1准确率达到了83%(Papers With Code的排行榜前十名的top-1准确率在86.1%到88.5%之间)。

论文地址:https://arxiv.org/pdf/2011.00071.pdf

尤洋在推特上表示,这项研究在准确率足够高的前提下,在速度上创造了一个世界记录。

EfficientNets是基于有效缩放的新型图像分类卷积神经网络系列。

目前,EfficientNets的训练可能需要几天的时间;例如,在Cloud TPU v2-8节点上训练EfficientNet-B0模型需要23个小时。

在这项研究中,作者探索了在2048个内核的TPU-v3 Pod上训练EfficientNets的技术,目的是在以这种规模进行训练时可以实现加速。

作者讨论了将训练扩展到1024个TPU-v3内核、批量大小为65536时所需的优化,例如大批量优化器的选择和学习率的规划,以及分布式评估和批量归一化技术的利用。

此外,作者还提供了在ImageNet数据集上训练EfficientNet模型的时序和性能基准,以便大规模分析EfficientNets的行为。

通过优化后,作者能够在1小时4分钟内将ImageNet上的EfficientNet训练到83%的top-1准确率。

图1展示了对不同TPU内核数,EfficientNet-B2和B5训练时间达到的峰值准确率。训练时间在分布式训练和评估循环初始化之后立即开始计算,并在模型达到峰值准确率时结束。

可以观察到EfficientNet-B2在1024个TPU-v3内核上的训练时间为18分钟,top-1准确率为79.7%,全局批处理大小为32768,这表明训练速度明显提高。

通过在1024个TPU-v3内核上将全局批处理规模扩展到65536,可以在EfficientNet-B5上在1小时4分钟内达到83.0%的准确率。

表2展示了EfficientNet-B2和B5峰值准确率的基准,这里可以找到准确率的完整基准以及相应的批次大小,作者表示,即使使用全局批次大小,使用他们的方法,也可以在EfficientNet-B5上保持83%的准确率。

这项研究至少表明了,在EfficientNet上探索大规模图像分类的快速训练也是一个有希望的方向。

2

方法

将EfficientNet培训扩展到1024个TPU-v3内核会带来很多挑战,必须通过算法或系统优化来解决。

第一个挑战是随着全局批量规模的增加保持模型质量。由于全局批处理规模随用于训练的内核数量而定,因此,必须利用大批量训练技术来保持准确率。

而在大量TPU芯片上进行训练时也会面临计算瓶颈,不过可以使用Kumar等人提出的分布式评估和批量归一化技术来解决这些瓶颈。以下是为扩展TPU-v3 Pod上的EfficientNet训练而探索的优化技术:

大批量优化器

最初的EfficientNet论文使用RMSProp优化器,但众所周知,批量较大时,RMSProp会导致模型质量下降。

通过数据并行性将训练规模扩展到1024个TPU-v3内核,意味着如果保持每个内核的批量大小不变,则全局批量大小必须与内核的数量成比例增加。例如,如果我们将每核的批处理大小固定为32,则1024个核上的全局批处理大小将为32768。

另一方面,如果在扩展到多个核时全局批处理大小是固定的,则每核的批处理大小会降低,导致效率低下和吞吐量降低。

因此,为了更好地利用每个TPU内核的内存并提高吞吐量,必须使用较大的全局批处理大小。使用You等人提出的分层自适应速率缩放(LARS)优化器,能够扩展到65536的批量,同时达到与Tan和Le中报告的EfficientNet基准准确率相似的准确率。

学习率规划

为了在使用大批量时保持模型质量,作者还采用了学习率预热和线性缩放技术。

在保持epoch数固定的同时增加全局批量大小将导致更新权重的迭代数较少。为了解决这个问题,作者将线性缩放规则应用于批次中每256个样本的学习率。

但是,较高的学习率会导致发散。因此,作者还应用了学习率预热,其中训练以较小的初始学习率开始,并在可调整的时期内逐渐提高学习率。此外,作者比较了各种学习速率规划,例如指数衰减和多项式衰减,发现对于LARS优化器,多项式衰减计划可实现最高的准确率。

分布式评估

评估循环的执行是EfficientNet的标准云TPU实现的另一个计算瓶颈,因为评估和训练循环是在单独的TPU上执行的。

在传统的TPUEstimator中,评估是在单独的TPU上进行的,训练的执行速度要比评估快,导致端到端时间很大程度上取决于评估时间。

为了克服这个问题,作者利用Kumar等人所述的分布式训练和评估循环。它在所有TPU上分配了训练和评估步骤,并允许扩展到更大数量的副本。

分布式批处理归一化

作者使用Ying等人提出的方案,通过将副本的子集分组在一起,在副本之间分布批处理归一化。这种优化可通过权衡TPU之间的通信成本来提高最终精度。分组在一起的副本数是可调超参数。

最终的批次归一化批次大小(每个副本子集中的样本总数)也会影响模型质量以及收敛速度。对于大于16的副本子集,作者还探索了将副本分组在一起的二维切片方法。

精度

目前已经观察到,使用bfloat16浮点格式来训练卷积神经网络可以达到甚至超过使用传统单精度格式(例如fp32)训练的网络的性能,这可能是较低精度的正则化效果所致。

作者实现了混合精度训练,以利用bfloat16的性能优势,同时仍保持模型质量。在实验中,bfloat16用于卷积运算,而所有其他运算都使用fp32。使用bfloat16格式进行卷积可提高硬件效率,而不会降低模型质量。

论文PDF下载

链接: https://pan.baidu.com/s/1w_3nt6lx0rX4QyFzPdckug 

提取码: qxwq

ImageNet排名 圆圈大小表示参数量。TOP1acc表示模型认为最可能的答案是正确的。TOP5acc表示模型认为5个最可能的答案有正确答案。从ResNet开始已经超过人类水平。该排名为平均每M参数对acc的贡献。 阅读详情

相关推荐

EfficientNet-PyTorch高效网络模型实战库

宽度(Width):指的是网络中每一层的通道数(channel number),通常用滤波器的数量表示。增加宽度可以提升模型的表达能力,但也会带来更高的内存消耗和计算成本。深度(Depth):指的是网络的层数。增加深度可以提升模型的非线性建模能力,但也容易导致训练困难和梯度消失问题。分辨率(Resolution):指的是输入图像的尺寸,例如 224×224 或 380×380。提高分辨率有助于捕捉更多细节,但会显著增加前几层的计算量。

weixin_35920379的博客 1233

第九课:EfficientNet学习

随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。来源于哔哩哔哩博主“霹雳吧啦Wz”,博主学习作为笔记记录,欢迎大家一起讨论学习交流。

qq_45825952的博客 1307

efficientnet-b2权重文件

efficientnet-b2-8bb594d6.pth

计算机视觉Imagenet、COCO等各数据集精度TOP排行

图像处理模型精度排行

suprem_Gfox的博客 7428

不用加速器!Google Earth Pro登录失败自救手册:从服务器连接到地图加载的完整排错流程

本文详细解析了Google Earth Pro登录失败的常见问题及解决方案,包括服务器连接失败、地图加载异常等。通过基础排查、内置修复工具使用和高级配置调整,帮助用户无需加速器即可解决启动问题、黑屏和转圈圈等困扰,提升软件使用体验。

weixin_29227425的博客 485

Toeplitz矩阵以及矩阵乘法FFT加速

Toeplitz矩阵以及矩阵乘法FFT加速 1.Toeplitz矩阵 托普利兹矩阵,简称为T型矩阵,它是由Bryc、Dembo、Jiang于2006年提出的。托普利兹矩阵的主对角线上的元素相等,平行于主对角线的线上的元素也相等;矩阵中的各元素关于次对角线对称,即T型矩阵为次对称矩阵。这里我们使用matlab中自带的函数生成一个toeplitz矩阵的例子: x=[1 2 3 4]; y=[1 5 6 7 8 9]; z=toeplitz(x,y); 我们可以得到一个这样的矩阵结果: 我们可以看到,其中x中

thlz 5069

ImageNet训练再创纪录,EfficientNet异军突起,ResNet:感受到了威胁

2020-11-04 21:12:27 作者 | 青暮 近年来,随着深度学习走向应用落地,快速训练ImageNet成为许多机构竞相追逐的目标。 2017年6月,FaceBook使用256块GPU以1小时在ImageNet上成功训练了ResNet-50。在这之后,ResNet-50基本成为了快速训练ImageNet的标配架构。 2018年7月,腾讯实现用2048块Tesla P40以6.6分钟在ImageNet上训练ResNet-50。同年8月,Fast.ai实现了18分钟的快速训练,他们使用的硬

喜欢打酱油的老鸟 1417

从零开始使用CubeMX配置STM32使用lwip实现httpd服务器以及使用vscode编辑阅读keil代码(三)

使用stm32搭载lwip实现HTTPd服务器

qq_30623327的博客 5933

Efficientnet笔记:各个框架最适合的图像尺寸

作者对神经网路的扩展过程进行了研究与反思。特别的是,作者提出了一个思考:能否找到一个规范化的神经网络扩展方法可以同时提高网络的准确率和效率。要实现这点,一个很关键的步骤便是如何平衡宽度、深度和分辨率这三个维度。作者通过一些经验性的研究发现,可以使用一种固定比例的放缩操作简单地实现对三者的平衡。最终,作者提出了一种简单却有效的复合扩展方法(compound scaling method)。例如,对于...

qq_38410428的博客 8757

SAP SD核心流程解析:从销售订单到财务结算的实战指南

本文深入解析SAP SD模块从销售订单到财务结算的核心流程,重点剖析了销售订单中的行项目类别如何作为流程的“总开关”,决定了后续交货、开票及财务集成的走向。文章结合实战案例,详细拆解了正常销售、退货、第三方销售、寄售等典型流程的配置要点与国内化适配方案,并阐述了SD与财务模块集成的关键连接点,为顾问和用户提供了一份全面的实战指南。

weixin_29250403的博客 428

SoIC、CoWoS、InFO一次讲透:从2D/2.5D/3D看懂先进封装

先进封装是后摩尔时代提升芯片性能的关键路径,但面对SoIC、CoWoS、InFO这些名词,很多人容易混淆。理解它们,需从最基本的2D、2.5D、3D封装概念入手:2D是传统平房,2.5D通过硅中介层实现高密度互连,3D则让芯片直接堆叠。CoWoS作为2.5D中介层封装,已成为AI芯片与HBM高带宽存储集成的行业标准;SoIC通过铜-铜混合键合实现真正的3D堆叠,为逻辑与缓存提供极致带宽;InFO以扇出型封装兼顾成本与集成度,广泛用于移动SoC。在系统级封装(SiP)和CPO共封装光学等前沿趋势中,这些技术往

weixin_42388898的博客 314

EfficientNet(ICML 2019)原理与代码解析

本文通过研究发现平衡深度、宽度、分辨率三个维度非常重要,并且发现这种平衡可以通过一个常量缩放因子来实现。基于此提出了一种复合缩放方法compound scaling method,与传统的任意缩放某个维度的方法不同,该方法用一组固定的缩放系数均匀地同时缩放三个维度。 此外,缩放方法的有效性很大程度上取决于baseline模型,因此作者通过neural architecture search设计了一个新的基线模型,然后通过本文的缩放方法得到了一系列的模型EfficientNets。

00000cj的博客 1024

完整复现YOLOv8:包括训练、测试、评估、预测阶段【本文源码已开源,地址在文章末尾】

(这里主要是在colab.research.google.com实现的,本地的配置也是类似的方法)YOLOv8是一种用于目标检测的深度学习算法。主要参考:https://github.com/ultralytics/ultralytics/blob/main/README.zh-CN.md。yolov8的权重:https://github.com/ultralytics/assets/releases。yolov8的文档:https://v8docs.ultralytics.com/

源代码杀手的博客 1万+

【机器学习】详解 EfficientNet

【机器学习】详解 EfficientNet

闻韶 1万+

161、车载环视系统的ISP多路同步架构——海思Hi3516DV300的4路鱼眼校正与拼接的帧同步误差控制

文章摘要: 针对海思Hi3516DV300车载环视系统四路鱼眼摄像头拼接画面动态撕裂问题,分析发现根本原因为帧同步误差(部分通道帧起始时间差1.2ms)。关键解决措施包括:1)通过VI通道主从同步模式(MASTER/SLAVE)结合软件补偿控制帧延迟;2)优化VPSS通道帧率锁定与丢帧策略确保拼接时序一致;3)严格校准鱼眼校正LUT参数与产线标定数据匹配;4)建议采用硬件同步信号(如sensor的FSIN引脚)降低软件同步压力。调试阶段需通过示波器直接测量sensor VSYNC信号,量产时需注意动态切换分

zzfmlxs的博客 138

什么是 SAP ABAP AMDP?

SAP HANA是SAP开发的一种内存数据库管理系统,它具有出色的性能和处理大规模数据的能力。为了充分利用SAP HANA的性能,SAP引入了AMDP技术,以便将数据库操作推送到数据库服务器执行,从而减少数据传输和处理时间。AMDP方法通常需要输入参数和输出参数。输入参数用于传递数据到SQLScript代码,而输出参数用于接收SQLScript代码的结果数据。ENDMETHOD.ENDCLASS.我们定义了一个输入参数来传递销售订单数据,以及一个输出参数来接收计算结果。ENDMETHOD.

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 908

垃圾分类、EfficientNet模型B0~B7、Rectified Adam(RAdam)、Warmup、带有Warmup的余弦退火学习率衰减

日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) EfficientNet中的每个模型要求的输入形状大小 每个网络要求的输入形状大小: EfficientNetB0 - (224, 224, 3) EfficientNetB1 - (240, 240, 3) EfficientNetB2...

あずにゃん梓喵的博客 8162

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

基于keras的EfficientNet复现 【2 训练模块】

B3大概适合一般的服务器跑,batchsize不要设置太大,很容易超出显存。 这个是用的前面AlexNet数据集,改天放个数据集地址,嗝。 from __future__ import absolute_import, division, print_function import tensorflow as tf import math import EfficientNet_Model import numpy as np from Data_Channel import Data_Channel im

empirethird的博客 444

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

EfficientNetV2:训练速度快了5~10x,更小,更快,精度更高的EfficientNet

本文转自AI公园。作者:Mostafa Ibrahim编译:ronghuaiyang导读相比于之前的SOTA,训练速度快了5~10x,而且性能更高。论文链接:https://arxiv.o...

我爱计算机视觉 1288

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

目前各类型准确率最高的图像识别算法

3、语义分割:截至2021年,最准确的语义分割算法是u - net++,它在CamVid和cityscape数据集上的IoU(交集超过联合)分数分别为92.8%和97.5%。2、图像分类:截至2021年,最准确的图像分类算法是EfficientNet-L2,它在ImageNet数据集上的top-1精度最高,达到90.4%。1、目标检测:截至2021年,最准确的目标检测算法是YOLOv4,它在COCO数据集上的mAP(平均平均精度)得分为43.5%。

roxxo的博客 6144

《EfficientNet》论文精读:比Resnet、MobileNet更好的视觉网络

本篇论文系统地研究了模型缩放并且仔细验证了网络深度、宽度和分辨率之间的平衡可以导致更好的性能表现,性能超过了Resnet、MobileNet等一众优秀的网络

my_name_is_learn的博客 3415

ImageNet 二值网络精度排名表

Comparison with state-of-the-arts on ImageNet using ResNet-18 (W-weights, A-activation) Bi-Real net 56.4% TBN 55.6 Binary Ensemble 61.0% 11

AI小作坊 的博客 2055

深度学习之图像分类(十五)-- EfficientNetV1 网络结构

深度学习之图像分类(十五)EfficientNetV1 网络结构 目录深度学习之图像分类(十五)EfficientNetV1 网络结构1. 前言2. 宽度,深度以及分辨率3. EfficientNetV1 网络结构4. 代码 本节学习 EfficientNetV1 网络结构。学习视频源于 Bilibili。参考博客太阳花的小绿豆: EfficientNet网络详解. 1. 前言 EfficientNetV1 是由Google团队在 2019 年提出的,其原始论文为 EfficientNet: Rethin

木卯_THU的博客 6618

pytorch训练Efficientnetv2模型的代码

基本的 PyTorch 代码框架如下: import torch import torchvision from efficientnet_pytorch import EfficientNet # 定义模型 model = EfficientNet.from_name('efficientnet-b2') # 定义损失函数和优化器 criterion = torch.nn.CrossEntr...

weixin_42611177的博客 314

各种分类网络

20问--各种网络类LeNet各层参数1、Input层2、C1卷积层3、S2池化层(下采样层)4、C3卷积层5、S4池化层(下采样层)6、C5卷积层7、F6全连接层8、Output层-全连接层AlexNet网络亮点:Alexnet数据增强操作:局部相应归一化网络参数:VGG网络结构特点GoogLeNet--InceptionV1亮点1*1conv的作用Inception结构网络结构网络结构解析亮点InceptionV21、卷积分解(Factorizing Convolutions)2、降低特征图大小Mobi

zhengfei11的博客 7047
上一篇: 收藏 | PyTorch模型训练特征图可视化(TensorboardX)
下一篇: 算法工程师面试知识点整理
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值