CN115618099A - 神经网络架构搜索的方法、装置及电子设备 - Google Patents
神经网络架构搜索的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115618099A CN115618099A CN202211102679.6A CN202211102679A CN115618099A CN 115618099 A CN115618099 A CN 115618099A CN 202211102679 A CN202211102679 A CN 202211102679A CN 115618099 A CN115618099 A CN 115618099A
- Authority
- CN
- China
- Prior art keywords
- hardware performance
- performance index
- network
- neural network
- dimensional code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 44
- 238000001514 detection method Methods 0.000 claims abstract description 59
- 238000010845 search algorithm Methods 0.000 claims abstract description 17
- 238000012549 training Methods 0.000 claims description 55
- 238000004422 calculation algorithm Methods 0.000 claims description 24
- 230000000750 progressive effect Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 3
- 230000003044 adaptive effect Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 17
- 238000005070 sampling Methods 0.000 description 13
- 238000013140 knowledge distillation Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000035772 mutation Effects 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 238000009412 basement excavation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
提供了一种神经网络架构搜索的方法、装置及电子设备。该神经网络架构搜索的方法包括:确定电子设备的硬件性能指标;根据电子设备的硬件性能指标,通过神经网络搜索算法,搜索符合硬件性能指标的目标二维码检测网络。本申请实施例根据电子设备的硬件性能,通过神经网络架构搜索方法,可以搜索出适配电子设备的硬件性能指标和效率约束的二维码检测网络结构。
Description
技术领域
本申请实施例涉及神经网络技术领域,并且更为具体地,涉及一种神经网络架构搜索的方法、装置及电子设备。
背景技术
二维码已应用到社会的方方面面,二维码检测任务也成为终端设备最广泛的应用之一。终端设备通常基于卷积神经网络实现二维码检测,但不同终端设备有着不同的硬件性能和效率限制,而目前设计的神经网络结构不能随终端设备的硬件平台变化而变化。
发明内容
本申请实施例提供了一种神经网络架构搜索的方法、装置及电子设备,下面对本申请实施例的各个方面进行介绍。
第一方面,提供一种神经网络架构搜索的方法,包括:确定电子设备的硬件性能指标;根据所述电子设备的硬件性能指标,通过神经网络搜索算法,搜索符合所述硬件性能指标的目标二维码检测网络。
第二方面,提供一种神经网络架构搜索的装置,包括:获取模块,用于获取电子设备的硬件性能指标;搜索模块,用于根据所述电子设备的硬件性能指标,通过神经网络搜索算法,搜索符合所述硬件性能指标的目标二维码检测网络。
第三方面,提供一种电子设备,包括如第二方面所述的神经网络架构搜索的装置。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于执行如第一方面所述的方法。
本申请实施例根据电子设备的硬件性能,通过神经网络架构搜索方法,可以搜索出适配电子设备的硬件性能指标和效率约束的二维码检测网络结构。
附图说明
图1是QR二维码的结构示意图。
图2是基于SSD算法的二维码检测的流程示意图。
图3是图2中SSD检测头的结构示意图。
图4是本申请实施例提供的神经网络架构搜索的方法的流程示意图。
图5是图4方法的一种可能的实现方式的流程示意图。
图6是图5方法的超网一种可能的实现方式的结构示意图。
图7是采样子网络的FLOPs统计分布示意图。
图8是图4方法的另一种可能的实现方式的流程示意图。
图9a-图9d是图8的步骤S820的一种可能的实现方式的流程示意图。
图10是图8的步骤S830的一种可能的实现方式的流程示意图。
图11是本申请实施例提供的神经网络架构搜索的装置的结构示意图。
图12是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。
二维码在工业和生活中得到了广泛的应用,已深入到社会的方方面面。二维码(2dimensional bar code)是通过按一定规律在二维方向上分布的图形来记录信息的条码。其中,以快速反应二维码(quick response code,QR Code)最为常见。如图1所示,QR二维码可以包括空白区域101、定位图案102和编码区103。其中,空白区域101划定了二维码的数据范围,定位图案102也可以称为位置探测图案、定位标志等,是3个类似“回”字的带白边的图案,分别位于二维码的左上角、右上角和左下角。编码区103用于存放格式信息、版本信息和数据。QR二维码还可以包括校正图案等辅助性的区域。检测二维码时在待检测图像中搜索二维码的3个定位图案,根据定位图案的个数和位置,恢复出正常的待检测图像。
二维码具有刚体特性,且二维码的定位图案(Finder Patterns)已经包含了位置信息,可以考虑利用该定位图像来提高使用算法检测二维码的精度。例如,可以通过在待检测图像中检测置信度比较高的回字特征,若检测到一个置信度比较高的回字特征,则可以判断该待检测图像中包含二维码,在判断图像中包含二维码的情况下才将图像输入深度学习检测算法的模型。又如,可以根据在待检测图像中检测到的3个理想的回字特征的位置来确定二维码区域。
二维码检测任务已成为终端设备最广泛的应用之一。通常依托于目标检测算法,将训练好的目标检测网络部署在终端设备上,实现二维码快速检测。
应理解,终端设备也称为端侧设备,还可以被称为客户端、终端、便携式终端、移动终端、通信终端、便携式通信终端、便携式移动终端、边缘侧设备、触摸屏等。例如,终端设备可以为但不限于各种智能手机、数码相机、摄像机、智能手机、笔记本电脑、平板电脑、智能电话、便携式电话、游戏机、电视、显示单元、个人媒体播放器(personal media player,PMP)、个人数字助理(personal digital assistant,PDA)、由电子计算机控制的机器人、车载终端,用于安防的设备(比如监控摄像设备、烟雾报警设备、灭火设备)、智能音箱等。终端设备也可以为具有无线通信功能和口袋大小的便携式通信终端。
目前二维码检测方法主要有两类:基于传统的图像处理算法和基于卷积神经网络的算法。
方法一、终端设备基于传统的图像处理算法实现二维码检测。首先,对图像进行预处理,通常包括图像灰度化,图像滤波,图像二值化等操作。然后,根据寻像图形“回”字形状以及空白与编码像素块的比例特征,可以结合轮廓检测算法检测出寻像图形。最后,需要根据检测到的寻像图形的相对位置关系纠正二维码图形方向。
方法二、终端设备基于卷积神经网络实现二维码检测。卷积神经网络是基于深度学习的目标检测器。基于深度学习的目标检测器通常可以分为两类:单阶段算法和双阶段算法。双阶段算法(如RCNN、Faster RCNN)检测效果较好,但是需要耗费更长的时间来完成检测,不太适合用于终端设备。单阶段算法中挑选候选框和预测候选框两步是同时完成的。单阶段算法包括YOLO、单步检测(single shot detection,SSD)等,具有检测速度快的优势,可用于终端设备。
SSD是一个流行且强大的目标检测网络。其骨架网络可以是轻量级网络MobileNetV1,由一些深度可分离卷积单元组成。MobileNet是专门为了移动端和嵌入式设备深度学习应用设计的网络结构,主要是为了在一个较低配置资源上也得到具有非常好的效果的特性。
图2是基于SSD算法的QR Code检测的流程示意图,如图2所示,QR Code检测的计算流程主要包括:输入样本空间,进行批归一化处理等,建立骨架网络;通过多层卷积单元进行训练,提取特征映射图;在SSD检测头进行子网挑选和预测,输出分类信息。
图3是图2中SSD检测头的结构示意图,如图3所示,SSD的检测头可以包括一个权重共享的卷积层310、一个分类器320以及一个回归器330。由于SSD网络规模较小,推理速度快,检测效果好,因此常被部署于终端设备来完成二维码检测任务。
目前的技术方法在在终端设备上的应用中存在一些不足。例如方法一的算法鲁棒性差。不同图像的外界光照不均、强光条件、弱光条件不同,需针对性地进行人工设计、调整预处理以及图像纠正方案,因此,该方法不宜部署在终端设备。方法二,由于不同终端设备有着不同的硬件平台和效率约束,要求部署在终端设备上的算法能够在保证性能的同时也能够满足约束条件。然而方法二设计的网络结构不能随终端设备的硬件性能变化而变化,因此不能直接应用于终端设备。
因此,如何开发一种可以适应不同终端设备硬件性能要求的神经网络架构搜索(neural architecture search,NAS)的方案是需要解决的问题。
基于此,本申请实施例提出一种神经网络架构搜索的方法。本申请实施例在方法二的基础上进行创新,使用神经网络架构搜索方法,针对设备的硬件性能和效率等约束条件,训练和搜索出“定制化”的二维码检测网络结构。下面对本申请实施例进行详细描述。
图4是本申请实施例提供的一种神经网络架构搜索的方法的流程示意图,应用于终端设备的二维码检测。图4的方法可以包括步骤S410至步骤S420,下面对这些步骤进行详细描述。
在步骤S410中,确定电子设备的硬件性能指标。电子设备是由微电子器件组成的电器设备,指可以由集成电路、晶体管、电子管等电子元器件组成,应用电子技术(包括软件)发挥作用的设备。电子设备可以指上文所述的终端设备。硬件性能指标包括但不限于算力、带宽、内存、每秒钟浮点运算次数(FLOPs)、时延(Latency)、功耗(Power)和存储空间等。
在步骤S420中,根据电子设备的硬件性能指标,通过神经网络搜索算法,搜索符合硬件性能指标的目标二维码检测网络。
在一些实现方式中,搜索符合硬件性能指标的目标二维码检测网络的过程可以包括:构建超网;对超网进行渐进式收缩训练,得到多个子网络;根据电子设备的硬件性能指标,对多个子网络进行搜索,得到符合硬件性能指标的目标二维码检测网络。
超网(hyper-network)通常包含了所有可能结构的子网,当测试某一个网络结构的性能时,可以直接继承超网训练后的参数。
在一些实现方式中,超网可以是基于MobileNetV2构建的。MobileNetV2是对MobileNetV1的改进版,MobileNetV2的深度可分离模块包括深度卷积(DepthwiseConvolution)和逐点卷积(Pointwise Convolution)两个独立的部分,都在输出结果处加入了批归一化层和非线性激活单元。深度可分离卷积不同于常规卷积操作,深度可分离卷积的一个卷积核负责一个通道,一个通道只被一个卷积核卷积。深度卷积结合逐点卷积的方式代替传统卷积,不仅在理论上会更高效,而且在逐点卷积过程中由于大量使用1x1的卷积,可提高计算效率。
可选地,骨架网络还可以使用ResNet-50、EfficientNet-b0等在ImageNet上预先训练好的、在多种任务上表现优秀的模型。ImageNet项目是一个用于视觉对象识别软件研究的大型可视化数据库。ImageNet就像一个网络一样,拥有多个节点(Node),每一个节点相当于一个项目或者子类。
在一些实现方式中,可以对超网进行渐进式收缩训练。神经网络架构搜索算法可以采用一劳永逸(once-for-all,OFA)网络算法。OFA网络提供了一个超网大模型,该模型下包含了许多不同大小的子网络,覆盖了卷积神经网络架构的四个重要维度,即深度(depth)、宽度(width)、内核大小和分辨率。
在一些实现方式中,可以采用混合损失(Loss)的方式进行超网训练,混合损失可以包括回归损失和分类损失。对超网进行渐进式收缩训练的过程主要可以包括:确定超网的回归损失和分类损失;根据回归损失和分类损失,对超网的参数进行更新。
在一些实现方式中,回归损失可以使用SmoothL1损失。SmoothL1损失为绝对损失函数,它是随着误差线性增长,而不是平方增长。可选地,回归损失还可以使用L1 loss、L2loss、Huber loss等。
在一些实现方式中,分类损失可以使用二元交叉熵(binary cross Entropy,BCE)。BCE中,当预测值接近标签值时损失很小,当预测值远离标签值时损失很大,这一特性有利于模型的学习。可选地,分类损失还可以使用Focal loss。
可选地,渐进式收缩训练时,采样空间可以自行设定。
在进行搜索前,通常需要建立硬件效率查找表(look-up table,LUT)。在一些实现方式中,可以在终端设备测试每个算子在不同输入条件下的效率(如每秒钟浮点运算次数FLOPs、时延、功耗等),并建立映射对照表。
在一些实现方式中,可以采样K个子网络,利用子网结构与子网性能样本对,训练一个精度预测器(accuracy predictor,AP)。通过精度预测器能够直接由子网结构预测其性能,在搜索时无需进行子网的前向传播,能够大大加快搜索进程。
可选地,训练的精度预测器的层数和每层节点数目可以自行设定。
在一些实现方式中,采用进化搜索算法,在终端设备的硬件平台和效率约束下,搜索出最适合该终端设备的二维码检测网络并部署。
本申请实施例根据终端设备的硬件性能,通过神经网络架构搜索方法,可以搜索出最适配终端设备硬件平台和效率约束的二维码检测网络结构。
图5是图4方法的一种可能的实现方式的流程示意图。具体地,在图5方法中,可以首先设计二维码检测网络的超网结构并训练,以此作为基准模型。然后采用OFA算法渐进式收缩方式训练超网。超网训练完成后,使用进化搜索算法,根据终端设备的硬件性能指标和效率条件等约束,搜索出最适合该终端设备的二维码检测网络并部署。如图5所示,例如在终端设备的硬件性能高时,如AI云设备,搜索出最适合的复杂二维码检测子网(通道多、卷积核大等)。又如终端设备的硬件性能低时,如微AI设备(AIOT),搜索出最适合的简单二维码检测子网(通道少、卷积核小等)。再如终端设备的硬件性能中等时,如移动AI设备,搜索出最适合的中等二维码检测子网(通道适中、卷积核大小适中等)。
图5的方法可以包括步骤S510至步骤S530,下面对这些步骤进行详细描述。
在步骤S510中,设计二维码检测网络的超网结构,训练后作为基准模型。
二维码检测网络的目标检测算法可以采用SSD算法,骨架网络可以采用MobileNetV2的结构。图6是图5方法的超网一种可能的实现方式的结构示意图。如图6所示,每个卷积模块(conv block)可以由一个point-wise-conv2d+BN+RELU,一个depth-wise-conv2d+BN+RELU,以及一个point-wise-conv2d+BN+RELU组成。
其中,depth-wise-conv2d为深度卷积,point-wise-conv2d为逐点卷积。通过批归一化(batch normalization,BN)操作可以使网络的每层特征的分布尽可能的稳定,可以抑制梯度爆炸/消失,并加快训练速度。ReLU是目前应用最为广泛的激活函数。通过BN和ReLU,神经网络可以达到较大的纵深。
其中,每个卷积单元(conv unit)包括三个卷积块(block),即卷积单元的深度(depth)为3。并可以修改每个卷积块内depth-wise-conv2d的输出通道数(width),以此结构作为神经网络架构搜索的超网(Super-Net),训练得到一个基准模型。depth-wise-conv2d的卷积核大小可以由3×3修改为7×7。
在一些实现方式中,为提高模型精度,使用在ImageNet数据集上预先训练好的MobileNetV2模型,并对其进行扩展,以此作为超网的预训练模型。如图6所示,具体的扩展方式为:将MobileNetV2中3×3大小的卷积核使用双线性插值法扩展为7×7大小的卷积核,将MobileNetV2中每个卷积块包含的权重值赋予本申请实施例设计的骨架网络每个卷积单元的第一个卷积块。
在步骤S520中,渐进式收缩方法训练超网。
OFA是一种神经网络架构搜索算法,采用了渐进式收缩超网训练方法。在训练时,每一代训练(epoch)的神经网络都是从采样空间中随机采样出的子网络,子网络与超网权重共享。epoch使用训练集的全部数据,是对模型进行一次完整的训练。渐进式收缩可以分为多个阶段,逐步调整维度渐进式收缩训练超网。如渐进式收缩可以分为以下四个阶段:
第一阶段,训练一个深度、宽度和内核都最大的超网络,并且训练时可以适配不同的输入尺寸。
第二阶段,基于第一步得到的超网络做微调,保持深度和宽度最大,训练时搜索内核尺寸。
第三阶段,基于第二步得到的超网络做微调,保持宽度最大,训练时搜索模型的深度。
第四阶段,基于第三步得到的超网络做微调,训练时搜索模型的宽度。
本申请实施例中对每个阶段的调整维度(深度、宽度、内核等)和先后顺序不作限定,后文对渐进式收缩方法训练超网有详细的描述。
在一些实现方式中,在进行超网训练的过程中,也可以采用其他采样策略。例如OFA-NAS的改进版算法CompOFA认为宽度和深度不是互相独立的,相反它们之间存在着复合关系,即二者同时增加对模型性能都有提升作用。因此,可以将宽度和深度成对缩放,通过这样的采样方式,能够减小搜索空间,提高超网训练以及网络搜索的速度。
在一些实现方式中,可以采用混合损失(Loss)的方式进行超网训练,混合损失可以包括回归损失和分类损失。对超网进行渐进式收缩训练的主要过程可以包括:确定超网的回归损失和分类损失;根据回归损失和分类损失,对超网的参数进行更新。
在一些实现方式中,回归损失可以使用SmoothL1损失。SmoothL1损失为绝对损失函数,它是随着误差线性增长,而不是平方增长。如式1所示。其中,ypred和ylabel分别代表网络预测检测框坐标以及标签检测框坐标。
可选地,回归损失还可以使用L1 loss、L2 loss、Huber loss等。
在一些实现方式中,分类损失可以使用二元交叉熵(binary cross Entropy,BCE)。BCE分类损失中,当预测值接近标签值时损失很小,当预测值远离标签值时损失很大,这一特性有利于模型的学习。检测框类别可以表示为:{QRCode:1,Background:0},分类损失如式2所示。其中,ypred2和ylabel2分别代表网络预测类别分数以及标签类别。
在超网训练过程中,通常存在有正负样本不平衡问题。为避免模型对负样本的过拟合,在一些实现方式中,本申请实施例在分类损失中引入难例挖掘(hard mining,HM),将难样本抽取出来,通过训练,使得正负样本数量均衡。在一些实施例中,以保证正负样本比例为1:3。即正样本数目为numpos,取的前3×numpos大项作为负样本的loss。分类损失可以如式3所示。通过引入难例挖掘,可以缓解正负样本不平衡问题,提高网络的检测精度。
在一些实现方式中,为进一步提高网络性能,提升子网络的训练精度,在训练时引入知识蒸馏。知识蒸馏(knowledge distillation)是模型压缩的一种常用的方法,不同于模型压缩中的剪枝和量化,知识蒸馏是通过构建一个轻量化的小模型,利用性能更好的大模型的监督信息,来训练这个小模型,可以使小型网络达到接近于大型网络的表现,以期达到更好的性能和精度。
知识蒸馏可以使用基准模型作为教师网络,监督子网络的训练。网络的分类损失值可以如式4所示。
可选地,知识蒸馏使用的教师网络可以是训练好的基准模型,也可以是在二维码检测任务上表现优秀的其他模型。
综上,网络的总损失可以表示为:
L=Lcls+Lreg (5)
可选地,渐进式收缩训练时,采样空间可以自行设定。
可选地,分类损失还可以使用Focal loss。
在步骤S530中,搜索定制化的子网。
在进行搜索前,通常需要建立硬件效率查找表(look-up table,LUT)。可以在终端设备测试每个算子在不同输入条件下的效率(如每秒钟浮点运算次数FLOPs、时延、功耗等),并建立映射对照表。
在一些实现方式中,可以采样K个子网络,利用子网结构与子网性能样本对,训练一个精度预测器(accuracy predictor,AP)。通过精度预测器能够直接由子网结构预测其性能,在搜索时无需进行子网的前向传播,能够大大加快搜索进程。例如,采样K个子网络,利用子网结构与子网性能样本对,训练一个由四层全连接神经网络组成的精度预测器。图7是采样子网络的FLOPs统计分布示意图。如图7所示,以FLOPs为例,统计出采样子网的效率分布,以便子网搜索时设置合适的效率限制。例如,图7中在FLOPs位于1.00(1e8)附近的子网个数最多。
在一些实现方式中,可以采用进化搜索算法,在终端设备的硬件平台和效率约束下,搜索出最适合该终端设备的二维码检测网络并部署。
进化搜索算法流程可以包括种群初始化、种群评估、以及种群迭代。种群迭代过程可以包括:子网的选择,在限制条件(如FLOPs限制)下进行进化操作(如交叉和变异),种群评估,以及产生新的种群。满足一定迭代次数后,输出性能最优的子网,即可部署在硬件平台。有关进化搜索算法后文再做详细介绍。
本申请实施例根据终端设备的硬件性能指标,引入OFA神经网络架构搜索方法,能够根据不同终端设备的硬件性能指标和效率约束搜索出最佳二维码检测网络结构并部署。在训练阶段,在MobileNetV2结构上进行修改,并以此为超网和基准模型。首先训练该基准模型,然后采用渐进式收缩的训练方法训练超网,渐进式收缩的训练方法能够加快超网训练的收敛。在搜索阶段,使用进化搜索算法,能够在给定限制条件下快速搜索出最优子网络结构。本申请实施例有助于根据终端设备的不同硬件性能指标和效率约束搜索出最适配的二维码检测网络结构。
图8是图4方法的另一种可能的实现方式的流程示意图。图8方法中的操作步骤与图5方法的操作步骤一一对应。图8的方法可以包括步骤S810至步骤S830,下面对这些步骤进行详细描述。
在步骤S810中,采用预先训练好的MobileNetV2作为超网,训练作为基准模型。
在步骤S820中,渐进式收缩方法训练超网。
渐进式收缩可以分为多个阶段,根据不同维度渐进式收缩训练超网。
在训练时,每一代训练(epoch)的神经网络都是从采样空间中随机采样出的子网络,子网络与超网权重共享。epoch使用训练集的全部数据,对模型进行一次完整训练。例如,采样空间可以为:Φ={r∈{168,196,224,256},k∈{3,5,7},d∈{1,2,3},w∈{0.6,0.8,1.0}}。其中,r代表分辨率,k代表卷积核大小,d代表一个卷积单元内的卷积块数目,w代表卷积核输出通道数与最大通道数的比率。
图9a-图9d是图8的步骤S820的一种可能的实现方式的流程示意图。如图9a-图9d所示,渐进式收缩分为以下四个阶段:
第一阶段,如图9a所示,训练一个深度、宽度和内核都最大的超网络,并且训练时可以适配不同的精度,精度是可调节的,可以是全部精度,也可以为部分精度。如采样空间为Φ1={r∈{168,196,224,256},k=7,d=3,w=1.0}。
第二阶段,如图9b所示,基于第一阶段得到的超网络做微调,保持深度和宽度最大,训练时搜索内核尺寸,内核尺寸是可调节的。如采样空间为Φ2={r∈{168,196,224,256},k={3,5,7},d=3,w=1.0}。
第三阶段,如图9c所示,基于第二阶段得到的超网络做微调,保持宽度最大,深度是可调节的。如采样空间为Φ3={r∈{168,196,224,256},k∈{3,5,7},d∈{1,2,3},w=1.0}。
第四阶段,基于第三阶段得到的超网络做微调。如采样空间为Φ4={r∈{168,196,224,256},k∈{3,5,7},d∈{1,2,3},w∈{0.6,0.8,1.0}}。
训练过程中每个阶段都继承上个阶段的权重。采用这样的渐进式收缩训练方法,可以减轻子网络之间的互耦带来的网络训练振荡幅度大、收敛速度慢的问题。
在一些实现方式中,可以采用混合损失(Loss)的方式进行超网训练,混合损失可以包括回归损失和分类损失。
在步骤S530中,搜索定制化子网。
在进行搜索前,通常需要建立硬件效率查找表(look-up table,LUT)。可以在终端设备测试每个算子在不同输入条件下的效率(如每秒钟浮点运算次数FLOPs、时延、功耗等),并建立映射对照表。
可选地,为加快算法的计算,对复杂的计算可以构建高效的查找表,以对一些环节进行快速的查表求解。
在一些实现方式中,可以采样K个子网络,利用子网结构与子网性能样本对,训练一个精度预测器。通过精度预测器能够直接由子网结构预测其性能,在搜索时无需进行子网的前向传播,能够大大加快搜索进程。
在一些实现方式中,采用进化搜索算法,在终端设备的硬件平台和效率约束下,搜索出最适合该终端设备的二维码检测网络并部署。
图10是图8的步骤S830的一种可能的实现方式的流程示意图。如图10所示,进化搜索算法的流程主要包括种群初始化,种群评估,以及种群迭代等。图10的方法可以包括步骤S1010至步骤S1040,下面对这些步骤进行详细描述。
在步骤S1010中,进行种群初始化。
在步骤S1020中,进行种群评估。
在步骤S1030中,进行种群迭代。种群迭代可以细分为以下步骤:
在步骤S1031中,选择子网。以实现从群体中选择更优的对象,比如精度更高的模型。
在步骤S1032中,在限制条件(如FLOPs限制)下进行进化操作,如交叉和变异操作。
交叉过程就是要实现不同优秀对象的信息交换,比如两个好子网的模块交换。变异过程是对个体的微小改变,相对于交叉过程,能引入更多的随机性,有助于跳出局部最优解。
在步骤S1033中,进行种群适配评估。
在步骤S1034中,产生新的种群,即性能更优的子网。
在步骤S1035中,判断是否满足停止迭代条件。如果不满足停止迭代条件,则返回步骤S1031;如果满足停止迭代条件,则进入步骤S1040。
在步骤S1040中,满足一定迭代次数后,满足停止迭代条件,输出性能最优的子网。即可部署在硬件平台。
上文结合图1-图10,详细描述了本申请的方法实施例,下面结合图11,详细描述本申请的装置实施例。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图11是本申请实施例提供的神经网络架构搜索的装置的结构示意图。如图11所示,该装置1100可以包括获取模块1110和搜索模块1120。其中,获取模块1110用于获取电子设备的硬件性能指标。搜索模块1120用于根据电子设备的硬件性能指标,通过神经网络搜索算法,搜索符合硬件性能指标的目标二维码检测网络。
本申请实施例在进行产品测试时,可以通过查看软件运行日志进行验证。例如,运行日志中发现使用ONCE-FOR-ALL的渐进式收缩训练方法,以及基于进化算法的搜索方法进行二维码检测网络的训练和搜索。训练过程中网络的分类损失和回归损失符合本申请实施例提出的混合损失计算公式。此外,本申请实施例的产品使用手册或者PR说明中通常会包括“使用OFA训练二维码检测超网,并搜索最佳子网部署于终端设备”等信息。
图12是本申请实施例提供的电子设备的结构示意图。如图12所示,该电子设备1200可以包括如前文任一描述的神经网络架构搜索的装置1210。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序用于执行如前文任一描述的神经网络架构搜索的方法。
应理解,本申请实施例提及的计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digitalvideo disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
应理解,在本申请的各种实施例中,“第一”、“第二”等是用于区别不同的对象,而不是用于描述特定顺序,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
在本申请所提供的几个实施例中,应该理解到,当称某一部分与另一部分“连接”或“相连”时,其意味着该部分不仅可以“直接连接”,而且也可以“电连接”,同时另一个元件介入其中。另外,术语“连接”也意指该部分“物理地连接”以及“无线地连接”。另外,当称某一部分“包含”某一元件时,除非另行加以陈述,否则,其意味着该某一部分可以包括另一元件,而不是排除所述另一个元件。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种神经网络架构搜索的方法,其特征在于,包括:
确定电子设备的硬件性能指标;
根据所述电子设备的硬件性能指标,通过神经网络搜索算法,搜索符合所述硬件性能指标的目标二维码检测网络。
2.根据权利要求1所述的方法,其特征在于,所述根据所述电子设备的硬件性能指标,通过神经网络搜索算法,搜索符合所述硬件性能指标的目标二维码检测网络,包括:
构建超网;
对所述超网进行渐进式收缩训练,得到多个子网络;
根据所述电子设备的硬件性能指标,对所述多个子网络进行搜索,得到符合所述硬件性能指标的所述目标二维码检测网络。
3.根据权利要求2所述的方法,其特征在于,所述超网是基于MobileNetV2构建的。
4.根据权利要求2所述的方法,其特征在于,所述对所述超网进行渐进式收缩训练,包括:
确定所述超网的回归损失和分类损失;
根据所述回归损失和分类损失,对所述超网的参数进行更新。
5.一种神经网络架构搜索的装置,其特征在于,包括:
获取模块,用于获取电子设备的硬件性能指标;
搜索模块,用于根据所述电子设备的硬件性能指标,通过神经网络搜索算法,搜索符合所述硬件性能指标的目标二维码检测网络。
6.根据权利要求5所述的装置,其特征在于,所述根据所述电子设备的硬件性能指标,通过神经网络搜索算法,搜索符合所述硬件性能指标的目标二维码检测网络,包括:
构建超网;
对所述超网进行渐进式收缩训练,得到多个子网络;
根据所述电子设备的硬件性能指标,对所述多个子网络进行搜索,得到符合所述硬件性能指标的所述目标二维码检测网络。
7.根据权利要求6所述的装置,其特征在于,所述超网是基于MobileNetV2构建的。
8.根据权利要求6所述的装置,其特征在于,所述对所述超网进行渐进式收缩训练,包括:
确定所述超网的回归损失和分类损失;
根据所述回归损失和分类损失,对所述超网的参数进行更新。
9.一种电子设备,其特征在于,包括如权利要求5-8中任一项所述的神经网络架构搜索的装置。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序用于执行如权利要求1-4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211102679.6A CN115618099A (zh) | 2022-09-09 | 2022-09-09 | 神经网络架构搜索的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211102679.6A CN115618099A (zh) | 2022-09-09 | 2022-09-09 | 神经网络架构搜索的方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115618099A true CN115618099A (zh) | 2023-01-17 |
Family
ID=84859257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211102679.6A Pending CN115618099A (zh) | 2022-09-09 | 2022-09-09 | 神经网络架构搜索的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115618099A (zh) |
-
2022
- 2022-09-09 CN CN202211102679.6A patent/CN115618099A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | An edge traffic flow detection scheme based on deep learning in an intelligent transportation system | |
US11462007B2 (en) | System for simplified generation of systems for broad area geospatial object detection | |
EP3940638B1 (en) | Image region positioning method, model training method, and related apparatus | |
Zamir et al. | Image geo-localization based on multiplenearest neighbor feature matching usinggeneralized graphs | |
CN108734210B (zh) | 一种基于跨模态多尺度特征融合的对象检测方法 | |
Chen et al. | Discriminative soft bag-of-visual phrase for mobile landmark recognition | |
CN110929080B (zh) | 基于注意力和生成对抗网络的光学遥感图像检索方法 | |
CN109697451B (zh) | 相似图像聚类方法及装置、存储介质、电子设备 | |
CN110555428B (zh) | 行人重识别方法、装置、服务器以及存储介质 | |
CN110909630A (zh) | 一种异常游戏视频检测方法和装置 | |
CN109063549A (zh) | 基于深度神经网络的高分辨率航拍视频运动目标检测方法 | |
JP2023502140A (ja) | タスク固有のデータ利用のための物理学により誘導されたディープマルチモーダル埋め込みのための方法及び装置 | |
CN113569607A (zh) | 动作识别方法、装置、设备以及存储介质 | |
CN114722937A (zh) | 一种异常数据检测方法、装置、电子设备和存储介质 | |
CN113255719A (zh) | 目标检测方法、装置、电子设备及计算机可读存储介质 | |
CN110163095B (zh) | 回环检测方法、回环检测装置及终端设备 | |
CN115830643B (zh) | 一种姿势引导对齐的轻量行人重识别方法 | |
CN117115911A (zh) | 一种基于注意力机制的超图学习动作识别系统 | |
CN111291611A (zh) | 一种基于贝叶斯查询扩展的行人重识别方法及装置 | |
CN115618099A (zh) | 神经网络架构搜索的方法、装置及电子设备 | |
US9886652B2 (en) | Computerized correspondence estimation using distinctively matched patches | |
CN113139540B (zh) | 背板检测方法及设备 | |
CN114037056A (zh) | 一种生成神经网络的方法、装置、计算机设备和存储介质 | |
Zhu et al. | A dual evaluation multi‐scale template matching algorithm based on wavelet transform | |
Yang et al. | PLSAV: Parallel loop searching and verifying for loop closure detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |