CN113255730B - 基于拆分-融合策略的分布式深度神经网络结构转换方法 - Google Patents
基于拆分-融合策略的分布式深度神经网络结构转换方法 Download PDFInfo
- Publication number
- CN113255730B CN113255730B CN202110462461.0A CN202110462461A CN113255730B CN 113255730 B CN113255730 B CN 113255730B CN 202110462461 A CN202110462461 A CN 202110462461A CN 113255730 B CN113255730 B CN 113255730B
- Authority
- CN
- China
- Prior art keywords
- network model
- network
- layer
- pictures
- trained
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Image Analysis (AREA)
Abstract
基于拆分‑融合策略的分布式深度神经网络结构转换方法,采集图片,组成数据集,并将数据集分为训练集和测试集,对训练集和测试集中的图片进行预处理;对网络模型进行通道拆分,扩充网络模型宽度,然后再添加融合层,得到改进后的网络模型;采用训练集中的图片对改进后的网络模型进行训练后,将预处理之后的测试集中的图片输入到训练后的网络模型中,得到图片分类结果。本发明针对分布式推理的场景对已有的用于图片分类任务的网络模型进行改进,转换之后的网络模型可以在资源受限的分布式系统中实现较快的推理速度,即可以在资源受限的分布式系统中执行图片分类任务,并较快地得到分类结果,并且图片具有更高的分类精度。
Description
技术领域
本发明属于人工智能技术领域,涉及一种基于拆分-融合策略的分布式深度神经网络结构转换方法,可以将现有的图像分类的网络模型转换为适用于分布式系统的网络模型,以在资源受限的分布式系统上执行图像分类任务,也可用于目标检测、语义分割等其他计算机视觉任务中。
背景技术
卷积神经网络目前已经成为了图片分类任务的主流方法,在CIFAR10、ImageNet等多个图片分类数据集中取得了当前最佳的精度。为了能使该技术得到更广泛的应用,将网络模型部署到嵌入式和移动设备等硬件中是必须的。但主流的卷积神经网络模型通常十分巨大,如VGG16的参数量高达138M,现有的硬件根本无法推理如此大的网络。针对这些硬件,一些轻量化的网络结构被通过手工设计或自动结构搜索的方法提出,如mobilenet系列,shufflenet系列,ghostnet,proxylessnas等,这些轻量化的网络模型以深度卷积(depthwise convolution)为核心操作,在保持参数量和计算量相对较少的同时,仍然能够达到较高的精度,因而受到了人们的青睐。
但是,这些网络模型都是针对单个硬件设计的,随着物联网(IoT)技术的迅猛发展,边缘计算成为了最近的一个研究热点和难点,在分布式系统中部署网络模型逐渐成为了一个广泛的需求,与在单个硬件上部署网络相比,在分布式系统中部署网络模型更加地困难,主要的原因有两点:(1)一个分布式系统通常包含很多边缘设备,单个边缘节点的计算能力通常非常弱,甚至连一个轻量化网络模型的推理都无法完成。(2)不同边缘节点之间的通信会产生额外的开销。
理论上说,直接将网络模型部署到分布式系统中,令不同的边缘节点推理不同的通道,是完全可以实现的。但是这种做法会带来巨大的通信开销,并严重拖慢系统的推理速度。这些额外的通信开销是由网络模型中的标准卷积(Standard convolution)层带来的,标准卷积的计算特性决定了其每一个输出通道都依赖于所有的输入通道,因此在推理每一个标准卷积层时,分布式系统的任意两个节点之间都需要通信。
为了避免额外的通信开销,可以将网络模型中的卷积层全部转换成组卷积,令不同的节点推理不同的组,这样做每个节点所有的输出通道只依赖于该节点的输入通道,不同节点之间不再需要任何的通信。但是这样做会带来新的问题。在整个前向推理的过程中,网络模型中不同的组之间没有信息交流,即出现了“信息阻塞”现象,严重地影响网络的精度。
现有的分布式推理方案(Deepthings,Fully Deepthings)的并行策略是对网络模型中每一层的特征图进行了分割,令不同的节点推理特征图的不同区域,但是这种策略在分布式系统上执行卷积神经网络的图片分类任务的推理时,仍然会带来很大的额外开销(通信开销或计算开销),该部分额外开销会严重地拉长推理时间(得到分类结果所需的时间),对需要快速得到分类结果的场合影响巨大。
现有技术中对图片分类存在精度低的问题。
发明内容
为克服现有技术中的问题,本发明的目的是提供一种基于拆分-融合策略的分布式深度神经网络模型转换方法。
为实现上述方法,本发明采用的技术方案如下:
基于拆分-融合策略的分布式深度神经网络结构转换方法,包括以下步骤:
1)采集图片,组成数据集,并将数据集分为训练集和测试集,对训练集和测试集中的图片进行预处理;
2)对网络模型进行通道拆分,扩充网络模型宽度,然后再添加融合层,得到改进后的网络模型;
3)采用训练集中的图片对改进后的网络模型进行训练后,将预处理之后的测试集中的图片输入到训练后的网络模型中,得到图片分类结果。
本发明进一步的改进在于,步骤1)中,采集图片,组成数据集,并将数据集分为训练集和测试集,对训练集和测试集中的图片进行预处理包括以下步骤:调整图片大小、对图片进行裁剪、随机左右翻转或像素归一化。
本发明进一步的改进在于,步骤2)中,对网络模型进行通道拆分,扩充网络模型宽度,然后再添加融合层,得到改进后的网络模型包括以下步骤:将网络模型宽度扩充倍,再去除网络模型中标准卷积层和全连接层里的部分权重;其中d是分组数。
本发明进一步的改进在于,去除网络模型中标准卷积层和全连接层里的部分权重包括以下步骤:
对于网络模型中的标准卷积层,设扩充网络模型宽度之前,输入通道数为cin,输出通道数为cout,卷积核大小为k,输出特征图的高度为h,宽度为w,那么在扩充网络宽度之后,输入通道数为输出通道数然后将所有的卷积核按顺序均分成d组,那么每一组包含的卷积核数量为将第i组卷积核的第至个通道中的权值保持不变,将其他通道中的所有权值置为0;其中,1≤i≤d;
对于网络模型中的全连接层,设扩充网络模型宽度之前,输入节点数为nin,输出节点数为nout,那么在扩充网络模型宽度之后,输入节点数为输出节点数为将输出节点数按顺序均分成d组,那么每一组包含的输出节点数为将第j组输出节点与第至个输入节点之间的权值保持不变,将第j组输出节点与其他输入节点之间的权值置为0。
本发明进一步的改进在于,步骤2)中,对网络模型进行通道拆分,扩充网络模型宽度,然后再添加融合层,得到改进后的网络模型包括以下步骤:
(1)构建一个层级的超网络,在超网络中的每一层设置两个候选block,其中一个候选Block包含拆分之后的层,另一个候选block包含拆分之后的层和并行的融合层;
(2)训练超网络;
(3)搜索最优的网络结构,首先从训练后的超网络中采样子网络,初始化种群,然后使用遗传算法采样,得到候选网络,首先判断候选网络是否满足nf≤[L/10],若不满足,则丢弃,重新采样;若满足,则计算BN中的统计量,再将该候选网络在验证数据集上进行推理,得到候选网络的代理精度,代理精度最高的候选网络作为搜索出的网络结构。
本发明进一步的改进在于,BN中的统计量通过下式计算
其中,x是累积的统计量,xi是x的第i个mini-batch,nb是mini-batch的数量,m是动量;
(4)将搜索出的网络结构重新训练至收敛,得到最终的网络结构,完成搜索;
(5)将1x1的标准卷积添加到与最终的网络结构并行的位置,作为网络模型中的融合层。
本发明进一步的改进在于,步骤3)中,采用训练集中的图片对改进后的网络模型进行训练时,采用的损失函数为交叉熵。
本发明进一步的改进在于,步骤3)中,采用训练集中的图片对改进后的网络模型进行训练后,将预处理之后的测试集中的图片输入到训练后的网络模型中,得到图片分类结果包括以下步骤:
将训练后的网络模型部署到分布式系统中,在部署时将网络模型的不同组部署到分布式系统中不同的边缘节点上,将融合层部署到一个节点上,再将预处理之后的测试集中的图片输入到网络模型中,得到图片分类结果。
与现有技术相比,本发明具有的有益效果:
本发明针对分布式推理的场景对已有的用于图片分类任务的网络模型进行改进,转换之后的网络模型可以在资源受限的分布式系统中实现较快的推理速度,即可以在资源受限的分布式系统中执行图片分类任务,并较快地得到分类结果,并且图片具有更高的分类精度。本发明中在训练网络模型之前对网络模型进行改进,现有的模型剪枝和量化方法(如Deep Compression,AMC,BNN)是在网络模型训练完毕之后执行,因此本发明的转换方法和它们是正交的,可以叠加使用使网络模型的推理速度更快,即更快地得到图像的分类结果。本发明通过对网络模型结构的改进,现有的知识蒸馏方法(如KD,FitNets,MoNN)的本质是对模型训练策略的改进,因此本发明的转换方法与知识蒸馏方法也是正交的,可以叠加使用,以获得更高的分类精度。
附图说明
图1为将CNN中的操作分成3类的示意图。其中,(a)通道级操作,(b)为分组级操作,(c)为层级操作。
图2为拆分通道之后的网络模型。
图3为网络单层拆分示意图,其中,(a)为分切之前,(b)为分切之后。
图4为转换之后的网络模型。
图5为搜索算法的过程示意图。
图6为搜索空间的结构示意图。
图7为搜索最优的网络结构的过程示意图。
图8为在网络中添加融合层的示意图。
图9为本发明的流程图。
具体实施方式
下面结合附图对本发明进行详细说明。
参见图9,本发明的基于拆分-融合策略的分布式深度神经网络结构转换方法,包括以下步骤:
1)采集图片,组成数据集,并将数据集分为训练集和测试集,对训练集和测试集中的图片进行预处理,并将预处理之后的图片输入到网络模型中;网络模型中包括标准卷积层和全连接层。
无论对训练集还是测试集,在把其中的图片输入到网络模型(如ResNet18,MobileNetv2)前,都需要先对图片进行适当的预处理,图片预处理的操作主要有:调整图片大小、对图片进行裁剪、随机左右翻转、像素归一化等。根据数据集的不同和图片性质的不同(训练图片或测试图片),数据预处理的具体步骤也不同。数据预处理是十分重要的,进行数据预处理对提升分类精度十分有帮助,原因主要有以下两点:
(1)在理想情况下,训练图片和测试图片应该是独立同分布的,但是在真实的数据中,数据可能会不完整或者具有比较大的噪声,数据也有可能来自于不同的数据源。对其进行预处理可以削弱这些不利因素的影响。
(2)对训练图片进行随机的预处理(随机裁剪等)可以提升模型的泛化性能,避免出现过拟合。
在对图片进行预处理之后,就可以把图片输入到分类网络模型中,训练和测试该网络模型。本发明主要的创新点在于对网络模型结构的改进。本发明会对网络模型结构进行改进,然后训练改进过的网络模型,最后进行推理,得到图片的分类结果。
2)对CNN中操作的分析,发现CNN中有三种类型操作。
在改进模型结构之前,本发明对CNN中常用的操作进行分析,一个卷积神经网络通常包含两类操作:线性操作(如卷积层、BN层等)和非线性操作(如激活层),对于线性层来说,本发明可以将其运算过程表示为:
其中,i和j是计数变量,X和Y分别是输入和输出特征图,Xj表示输入特征图X的第j个通道,Yi表示输出特征图Y的第i个通道。,Wi,j表示权重矩阵W的第i个核的第j个通道,c′表示输入特征图X的输入通道数。*表示CNN中的二维卷积操作。可以看出,CNN中的线性运算和矩阵乘法是非常相似的,区别仅仅在于使用二维卷积代替了矩阵乘法中的相乘运算。本发明定义一个新的运算符※来表示CNN中的线性运算,即:
Y=W※X
其中,Y为输出特征图,W为权重矩阵,X为输入特征图。
类似地,对于CNN中的非线性运算,本发明有着与式(1)相似的表达方式:
其中,Fi,j表示函数矩阵F的第i个核的第j个通道,CNN中的非线性操作同样和矩阵乘法非常相似,只是将矩阵乘法中的乘法运算替换成了函数运算。本发明同样地定义一个新的运算符◎来统一地表示这类非线性运算:
Y=F◎X
其中,F是函数矩阵,函数矩阵F与权重矩阵W的区别是函数矩阵F中的每一个元素都是一个函数而非一个数值。
进一步地,由于CNN中的线性运算和非线性运算的形式相同,本发明定义转换矩阵(权重矩阵或函数矩阵)T和转换运算⊙(※或◎)将CNN中的所有操作统一地表示。
Y=T⊙X
而根据转换矩阵T的属性,本发明又可以重新将CNN中的操作分成3类,如图1中(a)、(b)和(c)所示,每一类操作对于硬件的友好程度都不同。
(1)Channel-wise operation(通道级操作),如深度卷积、最大池化、Relu等。如图1(a)所示,转换矩阵T是一个对角矩阵,即T=diag(t1,t2,…tc),ti∈R1×1×k×k,其中k×k是操作的感受野,本发明可以直接忽略这两个维度,而不会对本发明的分析产生任何影响。如图1中(a)所示,对于通道级操作来说,输出特征图Y的第i个通道Yi仅仅取决于输入特征图X的第j个通道Xi,因此本发明可以在通道维度对该操作(该层)进行任意的切分,将它们部署到不同的边缘设备上,而不会带来额外的通信开销。
(2)Group-wise operation(分组级操作),如组卷积,如图1中(b)所示,转换矩阵T是一个分块对角矩阵,即T=diag(t1,t2,…tc″),ti∈Rm×n×k×k,max(m,n)>1,其中,c″是分块数。对于这类操作来说,Yi依赖于X的其中一组,因此只需要将同一组的通道部署到一个边缘设备上,就不会带来额外的通信开销。
(3)Layer-wise operation(层级操作):如标准卷积。如图1中(c)所示,转换矩阵T不是对角矩阵或分块对角矩阵,在此情况下,输出特征图Y的第i个通道Yi通常依赖于输入特征图X的大部分或全部通道,如果本发明将这类操作的不同通道部署到不同的边缘设备上运算,那么通常会产生非常大的通信开销。
3)通道拆分,扩充网络宽度;
在分布式系统中推理层级操作时会带来额外的通信开销,但是基于上述的CNN中操作的分析,CNN中通常包含多个层级操作,因此本发明考虑在保持网络的参数量和FLOPs基本不变的前提下对网络进行转换,转换过程包括以下两步:
(1)将网络模型宽度扩充为原来的倍,其中d是分组数,具体来说,对网络模型的第一层(通常为输入通道数为3的标准卷积层)来说,本发明保持其输入通道数不变,将其输出通道数扩充为原来的倍;对网络模型的最后一层(通常为全连接层),本发明保持其输出通道不变,将其输入通道扩充为原来的倍;对网络模型中的其他层来说,本发明将其输入和输出通道都扩充为原来的倍。
(2)去除网络模型中标准卷积层和全连接层里的部分权重(置0),将网络中的层级操作转换为分组级操作(除了网络中的第一层和最后一层),对绝大部分CNN来说,层级操作包括标准卷积层和全连接层,对标准卷积层来说,设扩充网络模型宽度之前,它的输入通道数为cin,输出通道数为cout,卷积核大小为k,输出特征图的高度为h,宽度为w,那么在扩充网络宽度之后,其输入通道数为输出通道数之后将所有的卷积核按顺序均分成d组,那么每一组包含的卷积核数量为对于第i组(1≤i≤d)卷积核来说,将其第至个通道中的权值保持不变,将其他通道中的所有权值置为0。对于全连接层来说,设扩充网络模型宽度之前,它的输入节点数为nin,输出节点数为nout,那么在扩充网络模型宽度之后,其输入节点数为输出节点数为同样地将输出节点数按顺序均分成d组,那么每一组包含的输出节点数为对于第j组输出节点来说,将其与第至个输入节点之间的权值保持不变,而将该输出节点与其他输入节点之间的权值置为0。实际上对标准卷积层和全连接层进行上述操作相当于将其转换为分组卷积或分组全连接层。
转换之后的网络模型如图2所示,对于标准卷积层来说,在转换之前参数量pc和乘加数FLOPsc分别为:
pc=cin·cout·k·k
FLOPsc=cin·cout·k·k·h·w
其中,cin为输入通道数,cout为输出通道数,k为卷积核大小,h为输出特征图的高度,w为宽度。
在扩充宽度之后,标准卷积层的扩充宽度之后的参数量pc′和乘加数FLOPsc′分别为:
在去除部分权值之后,标准卷积层的去除部分权值之后的参数量pc //和乘加数FLOPsc //分别为:
恰好保持不变。
对全连接层来说,在转换之前的全连接层的参数量pl和乘加数FLOPsl分别为
pl=nin·nout
FLOPsl=nin·nout
在扩充宽度之后,全连接层的扩充宽度之后的参数量pl /和乘加数FLOPsl /分别为:
在去除部分权值后,全连接层的去除部分权值后的参数量pl //和乘加数FLOPsl //分别为:
也与转换前的参数量和乘加数相等。
如果不扩充而直接去除部分权值,可以算得:
pc″=(cin/d)·cout·k·k=pc/d
FLOPsc″=(cin/d)·cout·k·kh·w=FLOPsc/d
pl″=(nin/d)·nout=pl/d
FLOPsl″=(nin/d)·nout=FLOPsl/d
即对于卷积层和全连接层来说,它们的参数量和乘加数都减少为了原来的1/d。实际上不改变它们的尺寸(通道数或节点数),而直接对其进行切分,相当于对该层做结构化剪枝,对于该层的每一个卷积核或输出节点,都剪去了其d-1/d的通道或输入节点,如图3中(a)和(b)所示。
本发明中提出通道拆分方案会影响网络模型总的参数量和乘加数,但是由于网络模型中的层级操作占据了网络绝大部分的参数量和乘加数,网络模型总的参数量和乘加数的变化量比较小。考虑到方案的通用性,不强制令整个网络模型总的参数量和乘加数保持不变。
4)稀疏融合策略;
上述的通道拆分方案可以在保持网络模型总参数量和计算量变化幅度不大(对大部分网络来说,总参数量和计算量变化量很小)的情况下将现有的网络模型转换为适用于资源受限的分布式系统的网络模型结构。但是也带来了“信息阻塞”的问题,卷积层在提取特征时只能用到上一层的小部分特征图,不同组之间没有任何信息交互或融合的途径。这样会对网络模型中的特征提取有很大的影响,进而大幅度影响网络模型的精度。
因此,层级操作尽管会带来额外的通信开销,但是对CNN来说是必要的。本发明对通道切分的方案进行了进一步的改进,在切分网络模型之后,本发明再在拆分后的网络模型中加入少量的层级操作(融合层)以融合网络模型中的特征信息,如图4所示。少量的层级操作并不会带来很大的额外通信开销,对推理速度的影响相对较小,但是已经可以充分地融合网络模型不同阶段的特征信息。由于现有的CNN中全连接层一般较少,且集中于最后几层,所以只考虑在卷积阶段融合特征信息。稀疏融合策略的具体执行分为两个部分:(1)使用网络结构搜索(NAS)算法确定融合层的位置。(2)把融合层添加到拆分后的网络模型中。在下面内容中,会详细地介绍这两部分。
5)通过NAS方法确定融合层的具体位置
本发明采用网络结构搜索的方法确定网络模型中融合层的具体位置,设网络模型共有L层,本发明基于NAS算法从网络模型中所有的block中搜索出nf个block或层(本发明限制nf≤[L/10],[]表示取整操作)用以定位融合层。具体的搜索算法由SPOS算法改进而来,包含以下4个步骤,如图5所示:
(1)本发明沿用了SPOS中搜索空间的范式,构建一个层级的超网络(搜索空间),但超网络中的候选结构与SPOS不同。本发明在超网络中的每一层都设置两个候选block(choice block),其中一个候选Block只包含拆分之后的层,而另一个候选block则包含拆分之后层和与其并行的融合层,如图6所示。
(2)训练超网络,在每一个Mini batch(小批量)开始时,都对超网络进行采样,从每一层中随机采样一个候选结构,组成一个子网络并在该子网络上执行训练的前向和反向过程。
(3)搜索最优的网络结构,首先从超网络中采样子网络,初始化种群,然后使用遗传算法从超网络中采样,对于遗传算法采样出的候选网络,首先判断其是否满足nf≤[L/10],不满足该条件的候选结构直接丢弃,重新采样。对于满足该条件的候选结构,本发明再重新计算BN中的统计量,这样做可以快速地剔除大部分不符合要求的候选结构,加快搜索效率。重新计算BN中的统计量之后,将该候选结构在验证数据集上进行推理,得到该候选结构的代理精度。在采样的过程中种群也在不断地进化,当种群进化完毕时停止采样,输出候选池中代理精度最高的网络结构作为搜索出的网络结构。整个搜索过程如图7所示:
其中,在重新计算BN中的统计量时,本发明通过重新执行训练的前向过程来实现,即:
其中,x是本发明需要累积的统计量,xi是x的第i个mini-batch(小批量),nb是mini-batch的数量,m是动量,通常设置m=0.9。
在重新计算BN中的统计量时,原始的SPOS针对每一个采样出的网络结构,都从数据的训练集中独立地随机采样20000张图片,用以执行训练的前向过程。也就是说,对于每一个采样出的候选网络结构,用以重新计算统计量的图片和它们的顺序都是不同的,这会使本发明的性能评估产生额外的随机波动。
本发明采用了一个简洁的方法去除这部分的随机波动,在搜索阶段开始之前,本发明一次性地从训练集中随机采样出20000张图片,并且固定它们的顺序,在搜索过程中,对于每一个采样出的网络结构,本发明都采用这批已经固定好顺序的图片重新计算BN层中的统计量,这样就消除了由于训练图片的随机性带来的额外随机波动。
(4)将搜索出的网络结构其重新训练至收敛,完成搜索,得到最终的网络结构block。
6)在网络中添加融合层
最后对于搜索出的网络结构,本发明将1x1的标准卷积添加到与这些block并行的位置,作为网络模型中的融合层,以融合不同组的特征信息,如图8所示。1x1的标准卷积可以完全地融合每一个通道的特征信息,同时不会带来比较大的额外计算量,而把其添加到与现有Block并行的位置,可以在不同的硬件上并行地推理网络模型的融合层和并行的其他层,显著地提升了推理速度,而且精度也比原网络模型更高。
7)训练和推理网络模型
(1)本发明将预处理之后的训练图片输入到转换结构之后的网络模型中,使用交叉熵作为训练过程中的损失函数,训练网络模型。
(2)本发明将训练完毕的网络模型部署到分布式系统中,在部署时将网络模型的不同组部署到分布式系统中不同的边缘节点上,将融合层单独部署到一个节点上。最后将测试图片输入到已部署到分布式系统上的网络模型中,令网络模型在分布式系统上进行分布式推理,得到分类结果。
下面为一个仿真例。
1.数据集:本发明在CIFAR10,CIFAR100和ImageNet三个数据集上进行了实验,对于CIFAR10和CIFAR100,需要做的预处理是:
(1)训练集:首先将训练集中的图片进行随机进行左右翻转,然后将图片零填充(zero-padding)到40*40,再随机裁剪到32*32,最后对图片进行归一化操作。
(2)测试集:对测试集中的图片进行归一化操作。
对于ImageNet,需要做的预处理是:
(1)训练集:首先从原训练图片中随机裁剪一块区域,该区域的长宽比在原始图片的3/4~4/3之间,面积在原训练图片的0.08倍~1倍之间。然后将该区域resize到224*224,再对进行随机的左右翻转,最后对区域进行归一化操作,作为预处理之后的训练集中的图片。
(2)测试集:首先将测试图片resize到224*224,然后选取测试图片中心的224*224大小的区域。最后对选择区域进行归一化操作,作为预处理之后的测试集中的图片。
2.训练设置
(1)搜索阶段:
使用动量为0.9的SGD进行训练,学习率使用余弦衰减策略进行变化,一共训练50个epoch。对于CIFAR10和CIFAR100来说,本发明设置batch size为128,初始学习率为0.1。除了MobileNetv2之外,设置weight decay为0.0001;对MobileNetv2,设置学习率为0.0005。对ImageNet来说,本发明设置batch size为256,初始学习率为0.05。除了MobileNetv2之外,设置weight decay为0.00004;对MobileNetv2,设置学习率为0.0001。此外设置了3个epoch的预热(warmup)。
(2)训练阶段:除了训练的epoch以外,别的超参数设置都和搜索阶段完全相同。在CIFAR10和CIFAR100上,本方法训练150个epoch。在ImageNet上,除了MobileNetv2,本方法训练150个epoch,在ImageNet上,本方法训练200个epoch。
(3)设备资源:本方法使用8块titan xp训练网络模型,构建的分布式系统中使用树莓派IV作为其边缘计算节点。
3.实验结果
在3个数据集上进行了10组实验,分组数d均设置为4。实验结果如表1所示。
表1在3个数据集上进行了10组实验结果
其中CIFAR10和CIFAR100上的原始网络(官方)的数据来自于原论文中报道的数据,ImageNet上原始网络(官方)的数据来自于pytorch官网。原始网络(本方法的实现)和转换之后的网络中的精度是都遵循了上一节中的训练设置,因此它们之间的比较是绝对公平的。可以看出,在精度方面,由本方法转换的网络模型取得了比原始网络模型更好的精度,在三个数据集上分别取得了0.40%,1.40%,0.97%的平均精度提升。同时FLOPs的增加相对较少。在速度方面,对绝大部分的网络模型来说,本发明的最大加速比可以达到3,最小加速比可以达到2.5。上述实验结果充分地证明了本发明的有效性。
本发明针对分布式推理的场景对已有的用于图片分类任务的网络模型(如ResNet18,MobileNetv2)进行转换,转换之后的网络模型可以在资源受限的分布式系统中实现较快的推理速度,即可以在资源受限的分布式系统中执行图片分类任务,并较快地得到分类结果。
本发明设计的转换方法,在转换之后可以取得更高的分类精度。本发明的转化方法在训练网络模型之前执行,而现有的模型剪枝和量化方法(如Deep Compression,AMC,BNN)是在网络模型训练完毕之后执行。因此本发明的转换方法和它们是正交的,可以叠加使用使网络模型的推理速度更快,即更快地得到图像的分类结果。
本发明的方法聚焦于对网络模型结构的改进,而现有的知识蒸馏方法(如KD,FitNets,MoNN)的本质是对模型训练策略的改进,因此本发明的转换方法与知识蒸馏方法也是正交的,可以叠加使用以获得更高的分类精度。
Claims (6)
1.基于拆分-融合策略的分布式深度神经网络结构转换方法,其特征在于,包括以下步骤:
1)采集图片,组成数据集,并将数据集分为训练集和测试集,对训练集和测试集中的图片进行预处理;
2)对网络模型进行通道拆分,扩充网络模型宽度,然后再添加融合层,得到改进后的网络模型;其中,对网络模型进行通道拆分,扩充网络模型宽度,然后再添加融合层,得到改进后的网络模型包括以下步骤:
(1)构建一个层级的超网络,在超网络中的每一层设置两个候选block,其中一个候选Block包含拆分之后的层,另一个候选block包含拆分之后的层和并行的融合层;
(2)训练超网络;
(3)搜索最优的网络结构,首先从训练后的超网络中采样子网络,初始化种群,然后使用遗传算法采样,得到候选网络,首先判断候选网络是否满足nf≤[L/10],若不满足,则丢弃,重新采样;若满足,则计算BN中的统计量,再将该候选网络在验证数据集上进行推理,得到候选网络的代理精度,代理精度最高的候选网络作为搜索出的网络结构;
BN中的统计量通过下式计算
其中,x是累积的统计量,xi是x的第i个mini-batch,nb是mini-batch的数量,m是动量;
(4)将搜索出的网络结构重新训练至收敛,得到最终的网络结构,完成搜索;
(5)将1x1的标准卷积添加到与最终的网络结构并行的位置,作为网络模型中的融合层;
3)采用训练集中的图片对改进后的网络模型进行训练后,将预处理之后的测试集中的图片输入到训练后的网络模型中,得到图片分类结果。
2.根据权利要求1所述的基于拆分-融合策略的分布式深度神经网络结构转换方法,其特征在于,步骤1)中,采集图片,组成数据集,并将数据集分为训练集和测试集,对训练集和测试集中的图片进行预处理包括以下步骤:调整图片大小、对图片进行裁剪、随机左右翻转或像素归一化。
4.根据权利要求3所述的基于拆分-融合策略的分布式深度神经网络结构转换方法,其特征在于,去除网络模型中标准卷积层和全连接层里的部分权重包括以下步骤:
对于网络模型中的标准卷积层,设扩充网络模型宽度之前,输入通道数为cin,输出通道数为cout,卷积核大小为k,输出特征图的高度为h,宽度为w,那么在扩充网络宽度之后,输入通道数为输出通道数然后将所有的卷积核按顺序均分成d组,那么每一组包含的卷积核数量为将第i组卷积核的第至个通道中的权值保持不变,将其他通道中的所有权值置为0;其中,i是计数变量,1≤i≤d;
5.根据权利要求1所述的基于拆分-融合策略的分布式深度神经网络结构转换方法,其特征在于,步骤3)中,采用训练集中的图片对改进后的网络模型进行训练时,采用的损失函数为交叉熵。
6.根据权利要求1所述的基于拆分-融合策略的分布式深度神经网络结构转换方法,其特征在于,步骤3)中,采用训练集中的图片对改进后的网络模型进行训练后,将预处理之后的测试集中的图片输入到训练后的网络模型中,得到图片分类结果包括以下步骤:
将训练后的网络模型部署到分布式系统中,在部署时将网络模型的不同组部署到分布式系统中不同的边缘节点上,将融合层部署到一个节点上,再将预处理之后的测试集中的图片输入到网络模型中,得到图片分类结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110462461.0A CN113255730B (zh) | 2021-04-27 | 2021-04-27 | 基于拆分-融合策略的分布式深度神经网络结构转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110462461.0A CN113255730B (zh) | 2021-04-27 | 2021-04-27 | 基于拆分-融合策略的分布式深度神经网络结构转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113255730A CN113255730A (zh) | 2021-08-13 |
CN113255730B true CN113255730B (zh) | 2023-04-07 |
Family
ID=77221920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110462461.0A Active CN113255730B (zh) | 2021-04-27 | 2021-04-27 | 基于拆分-融合策略的分布式深度神经网络结构转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113255730B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657781A (zh) * | 2018-12-11 | 2019-04-19 | 中国航空工业集团公司西安航空计算技术研究所 | 面向嵌入式应用的深度神经网络压缩方法、装置及终端 |
CN109657584A (zh) * | 2018-12-10 | 2019-04-19 | 长安大学 | 辅助驾驶的改进LeNet-5融合网络交通标志识别方法 |
CN111860828A (zh) * | 2020-06-15 | 2020-10-30 | 北京仿真中心 | 一种神经网络的训练方法、存储介质和设备 |
CN112465140A (zh) * | 2020-12-07 | 2021-03-09 | 电子科技大学 | 一种基于分组通道融合的卷积神经网络模型压缩方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11995551B2 (en) * | 2018-02-14 | 2024-05-28 | Nvidia Corporation | Pruning convolutional neural networks |
CN110348537B (zh) * | 2019-07-18 | 2022-11-29 | 北京市商汤科技开发有限公司 | 图像处理方法及装置、电子设备和存储介质 |
-
2021
- 2021-04-27 CN CN202110462461.0A patent/CN113255730B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657584A (zh) * | 2018-12-10 | 2019-04-19 | 长安大学 | 辅助驾驶的改进LeNet-5融合网络交通标志识别方法 |
CN109657781A (zh) * | 2018-12-11 | 2019-04-19 | 中国航空工业集团公司西安航空计算技术研究所 | 面向嵌入式应用的深度神经网络压缩方法、装置及终端 |
CN111860828A (zh) * | 2020-06-15 | 2020-10-30 | 北京仿真中心 | 一种神经网络的训练方法、存储介质和设备 |
CN112465140A (zh) * | 2020-12-07 | 2021-03-09 | 电子科技大学 | 一种基于分组通道融合的卷积神经网络模型压缩方法 |
Non-Patent Citations (3)
Title |
---|
Fusion of Deep Convolutional Neural Networks for Land Cover Classification of High-Resolution Imagery;Grant J. Scott等;《IEEE Geoscience and Remote Sensing Letters》;20170811;第14卷(第9期);第1638-1642页 * |
Single Path One-Shot Neural Architecture Search with Uniform Sampling;Zichao Guo等;《arXiv》;20200708;第1-14页 * |
改进VGG网络的多聚焦图像的融合方法;陈清江等;《应用光学》;20200630;第41卷(第3期);第500-507页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113255730A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chu et al. | Fairnas: Rethinking evaluation fairness of weight sharing neural architecture search | |
CN110119811B (zh) | 一种基于熵重要性准则模型的卷积核裁剪方法 | |
CN112016507A (zh) | 基于超分辨率的车辆检测方法、装置、设备及存储介质 | |
CN111882040A (zh) | 基于通道数量搜索的卷积神经网络压缩方法 | |
CN114118402A (zh) | 基于分组注意力机制的自适应剪枝模型压缩算法 | |
Mo et al. | Neural architecture search for keyword spotting | |
CN112215353B (zh) | 一种基于变分结构优化网络的通道剪枝方法 | |
CN112381208B (zh) | 一种基于神经网络架构搜索的图片分类方法与系统 | |
Chang et al. | Automatic channel pruning via clustering and swarm intelligence optimization for CNN | |
CN105631519A (zh) | 一种基于预决策的卷积神经网络加速方法及系统 | |
CN111476247B (zh) | 利用了1xK或Kx1卷积运算的CNN方法及装置 | |
Zhong et al. | Where to Prune: Using LSTM to Guide End-to-end Pruning. | |
Zhao et al. | Efficient structured pruning and architecture searching for group convolution | |
CN111626404A (zh) | 基于生成对抗神经网络的深度网络模型压缩训练方法 | |
Lian et al. | Filter pruning via separation of sparsity search and model training | |
CN113255730B (zh) | 基于拆分-融合策略的分布式深度神经网络结构转换方法 | |
CN110490876B (zh) | 一种基于轻量级神经网络的图像分割方法 | |
CN115546879B (zh) | 用于表情识别的细粒度识别模型及方法 | |
Liu et al. | Flexi-compression: a flexible model compression method for autonomous driving | |
CN115457269A (zh) | 一种基于改进DenseNAS的语义分割方法 | |
CN116415144A (zh) | 一种基于循环神经网络的模型压缩和加速方法 | |
Lee et al. | Efficient decoupled neural architecture search by structure and operation sampling | |
CN111160077A (zh) | 一种大规模人脸动态聚类方法 | |
CN114565791A (zh) | 一种人物档案识别方法、装置、设备及介质 | |
CN114998648A (zh) | 一种基于梯度架构搜索的表现预测压缩方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |