一种具有CPU硬件优化感知的神经网络设计方法
未命名
10-08
阅读:98
评论:0

一种具有cpu硬件优化感知的神经网络设计方法
技术领域
1.本发明涉及计算机技术领域,具体涉及一种具有cpu硬件优化感知的神经网络设计方法。
背景技术:
2.近年来,深度学习(deeplearning)技术在目标检测领域取得了巨大的发展,从云服务器到自动驾驶汽车和嵌入式设备,在广泛的设备上部署深度学习模型的需求越来越大。随着dl模型的不断发展,其对硬件设备的算力需求也越来越高,由于芯片算力的限制,要求卷积神经网络及目标检测器需要在精度与计算存储方面的需求做出权衡,主要表现为在保证分类与识别精度几乎不变的情况下,降低神经网络运算的计算消耗。这种权衡往往难以把控,再加上近年来工业界和学术界深度学习编译器的出现,给予了基于硬件的神经网络设计具有了更多的探索空间。探寻一种网络在cpu上生成与之相适配神经网络的高效方式,是不可或缺的。
技术实现要素:
3.有鉴于此,本发明提供了一种具有cpu硬件优化感知的神经网络设计方法,以获取一种网络在cpu上生成与之相适配神经网络的高效方式。
4.为实现上述目的,本发明采用如下技术方案:
5.一种具有cpu硬件优化感知的神经网络设计方法,包括以下步骤:
6.s1、构建以mobilenetv3为变体的神经网络搜索空间,并确定搜索空间的搜索变量;根据搜索空间构建规则设计所需神经网络的编码规则;
7.s2、从搜索空间中随机采样n个结构不同的图像分类网络;其中,n≥1000;
8.s3、利用imagenet数据集测试n个图像分类网络的性能,获得n个图像分类网络在imagenet数据集上,其输入分辨率为k
×
k时取得top-1的准确率数据、n个网络在输入分辨率为k
×
k图像数据下的浮点运算次数;
9.s4、构建准确率预测器和构建延迟预测器;所述准确率器为利用步骤s3得到的准确率数据训练高斯回归模型,所述延迟预测器采用以下子步骤构建:
10.s4.1、在cpu上,先利用深度学习编译器tvm对n个图像分类网络进行编译优化,得到优化后的n个图像分类网络;然后对优化后的n个图像分类网络进行前向推理测试,得到延迟数据集;
11.s4.2、基于m个网络的浮点运算次数、以及在s4.1得到的延迟数据集,分别训练高斯过程回归模型、支持向量回归模型和线性回归模型;将训练好的高斯过程回归模型、支持向量回归模型和线性回归模型进行组合,从而构成延迟预测器;
12.s5、基于s4构建的准确率预测器和延迟预测器,将s1搜索空间里的搜索变量作为基因编码,使用遗传算法进行神经网络架构搜索,设定网络性能评价函数,最终得到评分最高的网络,即与cpu架构最适配的最优神经网络架构。
13.进一步的,所述s1确定的搜索空间变量包括:网络结构的block数量、block里的卷积核大小、block里的通道数扩张比;针对网络结构的搜索变量,编码设计为46位数字,其中,第1位至第20位表示网络20个block的卷积核大小,第21位至第40位表示网络20个block的通道扩张比,第41位至第46位表示网络六个阶段的block数量。
14.进一步的,所述s5包括如下子步骤:
15.s5.1、根据需求设计神经网络性能评价函数;
[0016][0017]
subjectto lat(net)《t
[0018]
其中,top1_acc(net)表示架构net在imagenet上的top-1准确率预测值,tvm_lat(net)表示网络目标cpu上经tvm优化后的前向推理延迟预测值,t为采样网络的延迟限制,α、β为常量,用于控制网络性能评价函数里精度和延迟的比例权重,perf(net)为架构net的最终性能分数;
[0019]
s5.2、从搜索空间里随机采样p个神经网络形成种群,采样限制为网络前向推理延迟小于t;其中,p为200,t为步骤s4.1中所有延迟数据集的均值;
[0020]
s5.3、利用s4构建的准确率预测器,获得种群网络在imagnet数据集top-1上的准确率预测值;利用s4构建的延迟预测器,获得种群网络在cpu上经tvm编译优化后的前向推理延迟预测值;
[0021]
s5.4、利用s5.1设计神经网络性能评价函数、以及准确率预测器和延迟预测器的预测结果,计算种群里每个网络的得分;并按得分降序进行排序,取排名前p*r个网络作为产生下一代的父代;将第排名第一名的网络放入最优架构候选池;其中α、β分别设置为1、2,r设置为0.25;
[0022]
s5.5、基于s5.4得到的最优架构,通过突变、交叉生成子代网络;
[0023]
s5.6、重复s5.3~s5.5共i次,取最优架构候选池里得分前3名的网络,即为与cpu架构最适配的最优神经网络架构。
[0024]
更进一步的,所述s5.5包括以下子步骤:
[0025]
s5.5.1从s5.4得到的父代中,随机选取m个网络在一定概率下进行突变;突变对象为网络的每个block的卷积核大小、通道数扩张比、每个stage的block数目,最后生成m个突变网络;其中m设置为0.5,突变概率设置为0.35;
[0026]
s5.5.2、从s5.4得到的父代中,随机选取2个网络进行交叉,子代网络block的参数以及block数从随机选取的2个网络之间进行随机选取,重复p-m次,最后生成p-m个网络。
[0027]
本发明是在传统神经网络搜索方法的基础上,通过构建准确率预测器和具有网络硬件优化特性的延迟预测器,配合遗传算法,探寻得到具有与目标硬件更高匹配性和可行性的神经网络架构。让研究人员在设计神经网络时,对网络模型在目标硬件上的硬件特性的把控更为精准可靠,也让神经网络模型在cpu硬件上以更低推理延迟代价达到更高精度有了可能性。
附图说明
[0028]
为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使
用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0029]
图1是本发明的具有cpu硬件优化感知的神经网络设计方法的流程示意图;
[0030]
图2是本发明的mobilenetv3变体搜索空间构造示意图;
[0031]
图3是网络结构的编码规则;
[0032]
图4是利用深度学习编译器tvm在x86 cpu上对神经网络模型所做的编译优化策略示意图;
[0033]
图5是本发明构建的多回归模型-硬件特性预测器方法示意图;
[0034]
图6是本发明的基于遗传算法与回归模型的神经网络搜索方法示意图;
[0035]
图7是本实施例方法与与典型分类网络在x86 cpu上的imagenet top1精度与延迟比较。
具体实施方式
[0036]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0037]
如图1所示,本实施例提供的一种具有cpu硬件优化感知的神经网络设计方法,包括以下步骤:
[0038]
s1、构建以mobilenetv3为变体的神经网络搜索空间,并确定搜索空间的搜索变量;根据搜索空间构建规则设计所需神经网络的编码规则。
[0039]
搜索空间变量包括:网络结构的block数量、block里的卷积核大小、block里的通道数扩张比。本实施例mobilenetv3是当前轻量化网络的代表之一,其结构主要由多块倒残差块block堆叠构成。
[0040]
如图2所示,在本实施例以mobilenetv3为变体的神经网络搜索空间中,固定网络的第一层卷积层和第一个block,中间设置5个可变的stage,每个stage由2~4个block构成,每个block具有卷积核大小和通道数扩张比两个变量,分别从3、5、7和3、4、6中选择,在5个stage后设置一个固定的卷积层和一个全连接层,此搜索空间包含一共((32)2+(32)3+(32)4)5约2.2
×
10
19
个不同的神经网络架构。
[0041]
如图3所示,网络结构编码采用46位数字表示,第1位到20位表示5个阶段所有block的卷积核大小,第21位到第40位表示5个stage所有block的通道扩张比,前40位数字如果某一位为“0”则代表该位置没有block,第41位到46位表示每个stage的block数量。
[0042]
s2、从搜索空间中随机采样1000个结构不同的图像分类网络。
[0043]
s3、利用imagenet数据集测试n个图像分类网络的性能,获得n个图像分类网络在imagenet数据集上,其输入分辨率为k
×
k时取得top-1的准确率数据、n个网络在输入分辨率为k
×
k图像数据下的浮点运算次数。
[0044]
s4、构建延迟预测器和准确率预测器:
[0045]
所述延迟预测器采用以下子步骤构建:
[0046]
s4.1、在cpu上,先利用深度学习编译器tvm对1000个图像分类网络进行编译优化,得到优化后的1000个图像分类网络;然后对优化后的1000个图像分类网络进行前向推理,得到延迟数据集。
[0047]
本实施例cpu硬件平台为intel(r)xeon(r)cpu e5-2620 v4,其硬件参数为8核、16线程、l1 cache 32kb、simd。如图4所示,利用tvm对采用的1000个网络进行硬件编译优化的内容包括:计算图优化和张量算子层优化。其中,计算图层优化包括算子融合、数据布局转换,张量算子层优化包括算子的并行化、向量化、矩阵重新排序、矩阵分块优化策略。利用tvm的针对底层算子的自动调优机制,为采样的1000个神经网络的每个算子寻找最优的优化策略,然后在imagenet数据集中随机取1000张图片进行前向推理延迟测试,测试的是图片在预处理后送入网络到网络返回结果的这段耗时。
[0048]
s4.2、基于m个网络的浮点运算次数、以及在s4.1得到的延迟数据,分别训练高斯过程回归模型、支持向量回归模型和线性回归模型;将训练好的高斯过程回归模型、支持向量回归模型和线性回归模型进行叠加,从而构成延迟预测器。
[0049]
如图5所示,高斯过程回归预测公式如式(1)、支持向量回归预测公式为式(3)、线性回归预测公式如式(5)。
[0050][0051]
其中x表示单个神经网络的编码,ε表示服从正态分布的噪声,f(x)服从均值函数为m(x)、协方差函数为k(x,x
′
)的高斯分布,核函数k(x,x
′
)为径向基函数(rbf),如式(2):
[0052][0053]
其中sf、l为核函数常数系数,会在训练的过程中进行优化;
[0054]fsvm
(x)=w
t
κ(x,x
′
)+b
ꢀꢀ
(0)
[0055]
其中x为输入的网络编码,w、b为可训练参数,通过训练进行优化,采用的核函数为多项式核函数,如式(4):
[0056]
κ(x,x
′
)=(ζ+γx
t
x
′
)dꢀꢀ
(0)
[0057]
其中ζ、γ为常数参数,在训练的过程中进行优化;
[0058]fliner
(x)=w
t
x+b
ꢀꢀ
(0)
[0059]
其中,w、b为可训练参数
[0060]
三个回归模型均使用步骤b里的采集数据分别进行训练,取900个网络性能数据作为训练集,剩余100个网络性能数据作为测试集。回归模型输入的是每个网络对应位编码,输出的是每个网络经步骤b里tvm编译优化后的前向推理延迟,预测时将三个回归模型的预测结果加权求均值,表达式如式(6):
[0061][0062]
其中α、β、γ为控制三个回归模型预测结果的权重系数,通过调整其来控制三个回归模型预测时所占比重。特别的,针对延迟预测器的输入编码设计,在46位编码的基础之上再增加一位编码共47位编码,其中,前46位是步骤s1规定的网络结构参数表示,第47位表示
的是网络的浮点运算次数。
[0063]
所述准确率预测器为利用步骤s3得到的准确率数据训练好的高斯回归模型,其参数与式(1)、式(2)一致。使用时,输入为步骤s1规定的前46位网络编码,输出为编码对应网络在imagenet上的top-1准确率。
[0064]
s5、基于s4构建的准确率预测器和延迟预测器,将s1搜索空间里的搜索变量作为基因编码,使用遗传算法进行神经网络架构搜索,设定网络性能评价指标函数,最终得到评分最高的网络,即与cpu架构最适配的最优神经网络架构。如图6所示,具体操作步骤如下:
[0065]
s5.1、根据需求设计神经网络性能评价函数;
[0066][0067]
subject to lat(net)《t
[0068]
其中,top1_acc(net)表示架构net在imagenet上的top-1准确率预测值,tvm_lat(net)表示网络目标cpu上经tvm优化后的前向推理延迟预测值,t为采样网络的延迟限制,α、β为常量,用于控制网络性能评价函数里精度和延迟的比例权重,perf(net)为架构net的最终性能分数。
[0069]
s5.2、从搜索空间里随机采样p个神经网络形成种群,采样限制为网络前向推理延迟小于t;其中,p为200,t为步骤s4.1中取得的延迟数据集的均值;
[0070]
s5.3、利用步骤s4构建的准确率预测器,获得种群网络的imagnet数据集top-1的准确率;利用步骤s4构建的延迟预测器,获得种群网络在cpu上经tvm编译优化后的前向推理延迟;
[0071]
s5.4、利用步骤s5.1设计神经网络性能评价函数,计算种群里每个网络的得分;并按得分降序进行排序,取排名前p*r个网络作为产生下一代的父代;将第排名第一名的网络放入最优架构候选池;其中α、β分别设置为1、2,r设置为0.25;
[0072]
s5.5、基于步骤s5.4得到的最优架构,通过突变、交叉生成子代网络;
[0073]
更进一步的,所述步骤s5.5包括以下子步骤:
[0074]
s5.5.1从步骤s5.4得到的父代中,随机选取m个网络在一定概率下进行突变;突变对象为网络的每个block的卷积核大小、通道数扩张比、每个stage的block数目,最后生成m个突变网络;其中m设置为0.5,突变概率设置为0.35;
[0075]
s5.5.2、从步骤s5.4得到的父代中,随机选取2个网络进行交叉,子代网络block的参数以及block数从随机选取的2个网络之间进行随机选取,重复p-m次,最后生成p-m个网络;
[0076]
s5.6、重复步骤s5.3-s5.5 i次,取最优架构候选池里得分前3名的网络,即为与cpu架构最适配的最优神经网络架构。
[0077]
将步骤s5.6筛选出的三个网络分别命名为tnet-1、tnet-2、tnet-3,以imagenet top-1准确率和网络模型通过tvm编译优化后的延迟作为标准,与典型的通过手工设计和神经网络架构搜索的网络模型作为比较。从图7中可以看出,tnet-1、tnet-2、tnet-3与mnasnet1_3、mobilenet_v3-l、mnasnet1_0、mobilenet_v3-l相比,以不超过0.7ms的延迟代价取得了更高的精度;t-net3与mnasnet1_0、mobilenet_v2、mobilenet_v3-s、shufflenet_v2_x0_5、shufflenet_v2_x1_0相比,以增加不超过4ms的延而提升了17.14%~4.23%的精
度;tnet-1、tnet-2、tnet-3与shufflenet_v2_x2_0、resnet18、resnet34相比,减少了超过50%的延迟,但拥有更高的精度。
技术特征:
1.一种具有cpu硬件优化感知的神经网络设计方法,其特征在于,包括以下步骤:s1、构建以mobilenetv3为变体的神经网络搜索空间,并确定搜索空间的搜索变量;根据搜索空间构建规则设计所需神经网络的编码规则;s2、从搜索空间中随机采样n个结构不同的图像分类网络;其中,n≥1000;s3、利用imagenet数据集测试n个图像分类网络的性能,获得n个图像分类网络在imagenet数据集上,其输入分辨率为k
×
k时取得top-1的准确率数据、n个网络在输入分辨率为k
×
k图像数据下的浮点运算次数;s4、构建准确率预测器和构建延迟预测器;所述准确率器为利用步骤s3得到的准确率数据训练高斯过程回归模型,所述延迟预测器采用以下子步骤构建:s4.1、在cpu上,先利用深度学习编译器tvm对n个图像分类网络进行编译优化,得到优化后的n个图像分类网络;然后对优化后的n个图像分类网络进行前向推理测试,得到延迟数据集;s4.2、基于m个网络的浮点运算次数、以及在s4.1得到的延迟数据集,分别训练高斯过程回归模型、支持向量回归模型和线性回归模型;将训练好的高斯过程回归模型、支持向量回归模型和线性回归模型进行组合,从而构成延迟预测器;s5、基于s4构建的准确率预测器和延迟预测器,将s1搜索空间里的搜索变量作为基因编码,使用遗传算法进行神经网络架构搜索,设定网络性能评价函数,最终得到评分最高的网络,即与cpu架构最适配的最优神经网络架构。2.根据权利要求1所述的一种具有cpu硬件优化感知的神经网络设计方法,其特征在于,所述s1确定的搜索空间变量包括:网络结构的block数量、block里的卷积核大小、block里的通道数扩张比;针对网络结构的搜索变量,编码设计为46位数字,其中,第1位至第20位表示网络20个block的卷积核大小,第21位至第40位表示网络20个block的通道扩张比,第41位至第46位表示网络六个阶段的block数量。3.根据权利要求1所述的一种具有cpu硬件优化感知的神经网络设计方法,其特征在于,所述s5包括如下子步骤:s5.1、根据需求设计神经网络性能评价函数;subjectto lat(net)<t其中,top1_acc(net)表示架构net在imagenet上的top-1准确率预测值,tvm_lat(net)表示网络目标cpu上经tvm优化后的前向推理延迟预测值,t为采样网络的延迟限制,α、β为常量,用于控制网络性能评价函数里精度和延迟的比例权重,perf(net)为架构net的最终性能分数;s5.2、从搜索空间里随机采样p个神经网络形成种群,采样限制为网络前向推理延迟小于t;其中,p为200,t为步骤s4.1中所有延迟数据集的均值;s5.3、利用s4构建的准确率预测器,获得种群网络在imagnet数据集top-1上的准确率预测值;利用s4构建的延迟预测器,获得种群网络在cpu上经tvm编译优化后的前向推理延迟预测值;s5.4、利用s5.1设计神经网络性能评价函数、以及准确率预测器和延迟预测器的预测
结果,计算种群里每个网络的得分;并按得分降序进行排序,取排名前p*r个网络作为产生下一代的父代;将第排名第一名的网络放入最优架构候选池;其中α、β分别设置为1、2,r设置为0.25;s5.5、基于s5.4得到的最优架构,通过突变、交叉生成子代网络;s5.6、重复s5.3~s5.5共i次,取最优架构候选池里得分前3名的网络,即为与cpu架构最适配的最优神经网络架构。4.根据权利要求3所述的一种具有cpu硬件优化感知的神经网络设计方法,其特征在于,所述s5.5包括以下子步骤:s5.5.1从s5.4得到的父代中,随机选取m个网络在一定概率下进行突变;突变对象为网络的每个block的卷积核大小、通道数扩张比、每个stage的block数目,最后生成m个突变网络;其中m设置为0.5,突变概率设置为0.35;s5.5.2、从s5.4得到的父代中,随机选取2个网络进行交叉,子代网络block的参数以及block数从随机选取的2个网络之间进行随机选取,重复p-m次,最后生成p-m个网络。
技术总结
本发明涉及计算机技术领域,具体涉及一种具有CPU硬件优化感知的神经网络设计方法。该方法通过构建准确率预测器和具有网络硬件优化特性的延迟预测器,配合遗传算法,探寻得到具有与目标硬件更高匹配性和可行性的神经网络架构。让研究人员在设计神经网络时,对网络模型在目标硬件上的硬件特性的把控更为精准可靠,也让神经网络模型在CPU硬件上以更低推理延迟代价达到更高精度有了可能性。理延迟代价达到更高精度有了可能性。理延迟代价达到更高精度有了可能性。
技术研发人员:赵洋 邹佳峻 程洪
受保护的技术使用者:电子科技大学
技术研发日:2023.06.13
技术公布日:2023/10/6
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/