神经网络架构的搜索方法、装置和计算机存储介质与流程

未命名 07-14 阅读:185 评论:0


1.本发明涉及人工智能技术领域,尤其涉及一种神经网络架构的搜索方法、装置和计算机存储介质。


背景技术:

2.目前,神经网络广泛地应用在人工智能领域。近年来,陆续出现神经网络架构的搜索方法,无需大量专家经验就可以自动设计神经网络模型。当前大部分神经网络架构的搜索方法致力于以限制模型计算量或访存量的方式来保证模型的推理效率。
3.然而,经实践发现,以限制模型计算量或访存量的方式来保证模型的推理效率,会导致神经网络模型的效率不足。


技术实现要素:

4.本发明所要解决的技术问题在于,由于不同的硬件平台具有不同的硬件特性,因此仅仅以限制模型计算量或访存量的方式来保证模型的推理效率,并不能有效发挥神经网络模型所运行的硬件平台的硬件运算能力,从而导致的神经网络模型的效率不足。因此,本技术实施例提供一种神经网络架构的搜索方法、装置和计算机存储介质,能够搜索出的目标神经网络架构能够兼容推理效率和推理精度。
5.为了解决上述技术问题,本发明第一方面公开了一种神经网络架构的搜索方法,所述方法包括:
6.获取候选神经网络架构;
7.对所述候选神经网络架构进行训练;
8.若所述候选神经网络架构训练完成,则基于训练完成的候选神经网络架构搜索出目标神经网络架构,其中,在所述候选神经网络架构的损失函数满足训练完成条件的情况下,确定所述候选神经网络架构训练完成,所述损失函数包括第一硬件参数对应的函数项,所述第一硬件参数用于指示目标硬件平台运行所述候选神经网络架构的硬件参数。
9.作为一种可选的实施方式,在本发明第一方面中,所述获取候选神经网络架构,包括:
10.获取初始神经网络架构,所述初始神经网络架构包括n层神经网络层,每层所述神经网络层包括至少一个初始神经网络模块,n为1以上的自然数;
11.确定每个所述初始神经网络模块的第二硬件参数,所述第二硬件参数用于指示所述目标硬件平台运行所述初始神经网络模块的硬件参数;
12.根据每个所述初始神经网络模块的第二硬件参数,确定每个所述初始神经网络模块的评估指标;
13.根据每个所述初始神经网络模块的评估指标,从各层所述神经网络层的至少一个所述初始神经网络模块中筛选出各层所述神经网络层的候选神经网络模块,以得到所述获取候选神经网络架构,其中,所述候选神经网络架构的所述神经网络层包括所述候选神经
网络模块。
14.作为一种可选的实施方式,在本发明第一方面中,所述第二硬件参数包括操作数量、第二硬件延迟和理论算力中的至少一种,所述操作数量包括乘法操作数量和加法操作数量中的至少一种。
15.作为一种可选的实施方式,在本发明第一方面中,所述根据每个所述初始神经网络模块的第二硬件参数,确定每个所述初始神经网络模块的评估指标,包括:
16.根据每个所述初始神经网络模块的第二硬件参数,确定每个所述初始神经网络模块的硬件利用率,其中,所述初始神经网络模块的硬件利用率与所述初始神经网络模块的操作数量正相关,所述初始神经网络模块的硬件利用率分别与所述初始神经网络模块的第二硬件延迟以及理论算力负相关;
17.确定每个所述初始神经网络模块的参数量;
18.根据每个所述初始神经网络模块的硬件利用率以及所述参数量,确定每个所述初始神经网络模块的分数,并将初始神经网络模块的分数作为所述初始神经网络模块的评估指标,所述初始神经网络模块的分数分别与所述初始神经网络模块的硬件利用率以及所述参数量正相关。
19.作为一种可选的实施方式,在本发明第一方面中,所述初始神经网络架构为卷积神经网络架构,所述参数量包括所述卷积神经网络架构的卷积核数量。
20.作为一种可选的实施方式,在本发明第一方面中,所述初始神经网络模块的分数是通过第一公式确定的,所述第一公式包括:
21.s
ij
=k*u
ij
*p
ij

22.其中,s
ij
表示初始神经网络模块的分数,u
ij
表示硬件利用率,p
ij
表示参数量,k表示常量系数,i表示某一神经网络层,j表示某一初始神经网络模块;
23.和/或,
24.所述初始神经网络模块的硬件利用率是通过第二公式确定的,所述第二公式包括:
25.u
ij
=f
ij
/t
ij
*c);
26.其中,f
ij
表示操作数量,t
ij
表示第二硬件延迟,c表示理论算力。
27.作为一种可选的实施方式,在本发明第一方面中,所述根据每个所述初始神经网络模块的评估指标,从各层所述神经网络层的至少一个所述初始神经网络模块中筛选出各层所述神经网络层的候选神经网络模块,包括:
28.若所述初始神经网络模块的分数大于分数阈值,则将所述初始神经网络模块作为所述候选神经网络模块;
29.其中,所述初始神经网络模块对应的分数阈值与所述初始神经网络模块所在的所述神经网络层的所有所述初始神经网络模块的分数有关,或者,所述初始神经网络模块对应的分数阈值与所述初始神经网络架构的所有所述初始神经网络模块的分数有关。
30.作为一种可选的实施方式,在本发明第一方面中,所述候选神经网络架构包括n层神经网络层,n层所述神经网络层预先划分为至少两部分待训练的神经网络层,至少两部分待训练的神经网络层包括l层第一神经网络层和m层第二神经网络层,其中,n为2以上的自然数,l和m为1以上的自然数,l+m≤n;
31.所述对所述候选神经网络架构进行训练,包括:
32.保持m层第二神经网络层固定,并对l层第一神经网络层进行训练;
33.在l层第一神经网络层训练完成的情况下,保持l层第一神经网络层固定,并对m层第二神经网络层进行训练;
34.其中,所述候选神经网络架构的损失函数满足训练完成条件包括l层第一神经网络层的损失函数满足所述训练完成条件以及m层第二神经网络层的损失函数满足所述训练完成条件。
35.作为一种可选的实施方式,在本发明第一方面中,所述第一硬件参数包括第一硬件延迟和内存占用中的至少一种。
36.作为一种可选的实施方式,在本发明第一方面中,所述损失函数包括:
37.l(a,wa)=ce(a,wa)+α*lat(a)
β
+γ*mem(a)
δ

38.lat(a)=∑i∑jm
ij
*lat(block
ij
);
39.mem(a)=∑i∑jm
ij
*mem(block
ij
);
40.其中,l(a,wa)表示损失函数,a表示候选神经网络架构,wa表示候选神经网络架构的权重参数,ce(a,wa)表示候选神经网络架构的交叉熵损失项,lat(a)表示第二硬件延迟,mem(a)表示内存占用,超参数α表示第二硬件延迟的惩罚系数,超参数γ表示内存占用项的惩罚系数,超参数β用于调节第二硬件延迟对应的函数项的数值大小,超参数δ用于内存占用对应的函数项的数值大小,block
ij
表示第i层的第j个候选神经网络模块,m
ij
为候选神经网络架构中的softmax层所配置的gumbel-softmax函数产生的掩膜值,m
ij
表示所述候选神经网络架构的候选神经网络模块的采样概率。
41.作为一种可选的实施方式,在本发明第一方面中,所述候选神经网络架构包括n层神经网络层,n层神经网络层中的至少一层所述神经网络层为参与训练的神经网络层,n为2以上的自然数;
42.所述基于训练完成的候选神经网络架构搜索出目标神经网络架构,包括:
43.获取每层参与训练的神经网络层的每个候选神经网络模块的采样概率,所述候选神经网络模块的采样概率是所述候选神经网络架构在训练的过程中确定的;
44.在每层参与训练的神经网络层中保留最大的采样概率所对应的所述候选神经网络模块,以得到所述目标神经网络架构。
45.本发明第二方面公开了一种神经网络架构的搜索装置,所述装置包括:
46.获取模块,用于获取候选神经网络架构;
47.训练模块,用于对所述候选神经网络架构进行训练;
48.架构搜索模块,用于若所述候选神经网络架构训练完成,则基于训练完成的候选神经网络架构搜索出目标神经网络架构,其中,在所述候选神经网络架构的损失函数满足训练完成条件的情况下,确定所述候选神经网络架构训练完成,所述损失函数包括第一硬件参数对应的函数项,所述第一硬件参数用于指示目标硬件平台运行所述候选神经网络架构的硬件参数。
49.作为一种可选的实施方式,在本发明第二方面中,获取模块包括:
50.第一获取单元,用于获取初始神经网络架构,所述初始神经网络架构包括n层神经网络层,每层所述神经网络层包括至少一个初始神经网络模块,n为1以上的自然数;
51.第一参数确定单元,用于确定每个所述初始神经网络模块的第二硬件参数,所述第二硬件参数用于指示所述目标硬件平台运行所述初始神经网络模块的硬件参数;
52.评估指标确定单元,用于根据每个所述初始神经网络模块的第二硬件参数,确定每个所述初始神经网络模块的评估指标;
53.第二获取单元,用于根据每个所述初始神经网络模块的评估指标,从各层所述神经网络层的至少一个所述初始神经网络模块中筛选出各层所述神经网络层的候选神经网络模块,以得到所述获取候选神经网络架构,其中,所述候选神经网络架构的所述神经网络层包括所述候选神经网络模块。
54.作为一种可选的实施方式,在本发明第二方面中,所述第二硬件参数包括操作数量、第二硬件延迟和理论算力中的至少一种,所述操作数量包括乘法操作数量和加法操作数量中的至少一种。
55.作为一种可选的实施方式,在本发明第二方面中,评估指标确定单元用于根据每个所述初始神经网络模块的第二硬件参数,确定每个所述初始神经网络模块的硬件利用率,其中,所述初始神经网络模块的硬件利用率与所述初始神经网络模块的操作数量正相关,所述初始神经网络模块的硬件利用率分别与所述初始神经网络模块的第二硬件延迟以及理论算力负相关;
56.确定每个所述初始神经网络模块的参数量;
57.根据每个所述初始神经网络模块的硬件利用率以及所述参数量,确定每个所述初始神经网络模块的分数,并将初始神经网络模块的分数作为所述初始神经网络模块的评估指标,所述初始神经网络模块的分数分别与所述初始神经网络模块的硬件利用率以及所述参数量正相关。
58.作为一种可选的实施方式,在本发明第二方面中,所述初始神经网络架构为卷积神经网络架构,所述参数量包括所述卷积神经网络架构的卷积核数量。
59.作为一种可选的实施方式,在本发明第二方面中,所述初始神经网络模块的分数是评估指标确定单元通过第一公式确定的,所述第一公式包括:
60.s
ij
=k*u
ij
*p
ij

61.其中,s
ij
表示初始神经网络模块的分数,u
ij
表示硬件利用率,p
ij
表示参数量,k表示常量系数,i表示某一神经网络层,j表示某一初始神经网络模块;
62.和/或,
63.所述初始神经网络模块的硬件利用率是评估指标确定单元通过第二公式确定的,所述第二公式包括:
64.u
ij
=f
ij
/(t
ij
*c);
65.其中,f
ij
表示操作数量,t
ij
表示第二硬件延迟,c表示理论算力。
66.作为一种可选的实施方式,在本发明第二方面中,第二获取单元用于若所述初始神经网络模块的分数大于分数阈值,则将所述初始神经网络模块作为所述候选神经网络模块;
67.其中,所述初始神经网络模块对应的分数阈值与所述初始神经网络模块所在的所述神经网络层的所有所述初始神经网络模块的分数有关,或者,所述初始神经网络模块对应的分数阈值与所述初始神经网络架构的所有所述初始神经网络模块的分数有关。
68.作为一种可选的实施方式,在本发明第二方面中,所述候选神经网络架构包括n层神经网络层,n层所述神经网络层预先划分为至少两部分待训练的神经网络层,至少两部分待训练的神经网络层包括l层第一神经网络层和m层第二神经网络层,其中,n为2以上的自然数,l和m为1以上的自然数,l+m≤n;
69.训练模块用于保持m层第二神经网络层固定,并对l层第一神经网络层进行训练;
70.在l层第一神经网络层训练完成的情况下,保持l层第一神经网络层固定,并对m层第二神经网络层进行训练;
71.其中,所述候选神经网络架构的损失函数满足训练完成条件包括l层第一神经网络层的损失函数满足所述训练完成条件以及m层第二神经网络层的损失函数满足所述训练完成条件。
72.作为一种可选的实施方式,在本发明第二方面中,所述第一硬件参数包括第一硬件延迟和内存占用中的至少一种。
73.作为一种可选的实施方式,在本发明第二方面中,所述损失函数包括:
74.l(a,wa)=ce(a,wa)+α*lat(a)
β
+γ*mem(a)
δ

75.lat(a)=∑i∑jm
ij
*lat(block
ij
);
76.mem(a)=∑i∑jm
ij
*mem(block
ij
);
77.其中,l(a,wa)表示损失函数,a表示候选神经网络架构,wa表示候选神经网络架构的权重参数,ce(a,wa)表示候选神经网络架构的交叉熵损失项,lat(a)表示第二硬件延迟,mem(a)表示内存占用,超参数α表示第二硬件延迟的惩罚系数,超参数γ表示内存占用项的惩罚系数,超参数β用于调节第二硬件延迟对应的函数项的数值大小,超参数δ用于内存占用对应的函数项的数值大小,block
ij
表示第i层的第j个候选神经网络模块,m
ij
为候选神经网络架构中的softmax层所配置的gumbel-softmax函数产生的掩膜值,m
ij
表示所述候选神经网络架构的候选神经网络模块的采样概率。
78.作为一种可选的实施方式,在本发明第二方面中,所述候选神经网络架构包括n层神经网络层,n层神经网络层中的至少一层所述神经网络层为参与训练的神经网络层,n为2以上的自然数;
79.架构搜索模块用于获取每层参与训练的神经网络层的每个候选神经网络模块的采样概率,所述候选神经网络模块的采样概率是所述候选神经网络架构在训练的过程中确定的;
80.在每层参与训练的神经网络层中保留最大的采样概率所对应的所述候选神经网络模块,以得到所述目标神经网络架构。
81.本发明第三方面公开了另一种神经网络架构的搜索装置,所述装置包括:
82.存储有可执行程序代码的存储器;
83.与所述存储器耦合的处理器;
84.所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的神经网络架构的搜索方法。
85.本发明第四方面公开了一种计算机可存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的神经网络架构的搜索方法。
86.与现有技术相比,本发明实施例具有以下有益效果:
87.本发明实施例中,通过获取候选神经网络架构;对所述候选神经网络架构进行训练;若所述候选神经网络架构训练完成,则基于训练完成的候选神经网络架构搜索出目标神经网络架构,其中,在所述候选神经网络架构的损失函数满足训练完成条件的情况下,确定所述候选神经网络架构训练完成,所述损失函数包括第一硬件参数对应的函数项,所述第一硬件参数用于指示目标硬件平台运行所述候选神经网络架构的硬件参数,也就是说,在候选神经网络模型的训练过程中,是考虑到了神经网络模型所运行的目标硬件平台的硬件运算能力,也即考虑到了不同的硬件平台具有不同的硬件特性,由此基于训练完成的候选神经网络架构搜索出目标神经网络架构,能够有效发挥神经网络模型所运行的硬件平台的硬件运算能力,尽可能发挥目标硬件平台的最大硬件运算能力,与限制模型计算量或访存量的方式来保证模型的推理效率的方案相比较,本实施例的技术方案能够实现搜索出的目标神经网络架构能够兼容推理效率和推理精度的技术效果。
附图说明
88.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
89.图1是本发明实施例公开的一种神经网络架构的搜索方法的流程示意图;
90.图2是本发明实施例公开的一种神经网络架构的搜索装置的结构示意图;
91.图3是本发明实施例公开的又一种神经网络架构的搜索装置的结构示意图。
具体实施方式
92.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
93.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或端固有的其他步骤或单元。
94.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
95.本发明公开了一种神经网络架构的搜索方法、装置和计算机存储介质,能够兼容推理效率和推理精度。以下分别进行详细说明。
96.实施例一
97.请参阅图1,图1是本发明实施例公开的一种神经网络架构的搜索方法的流程示意图。其中,图1所描述的神经网络架构的搜索方法可以应用于神经网络架构的装置中,该装置可以应用于终端。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能电视以及智能车载等,但并不局限于此。此外,该装置还可以应用于服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(内容分发网络,content delivery network)、以及大数据和人工智能平台等基础云计算服务的云服务器,本技术在此不做限制。此外,该装置还可以应用于具备数据处理能力的处理器等,例如gpu(图形处理器,graphics processing unit)芯片、cpu(中央处理器,central processing unit)芯片和ai(人工智能,artificial intelligence)加速器等,在此不做限定。
98.如图1所示,该神经网络架构的搜索方法可以包括:
99.110、获取候选神经网络架构。
100.其中,候选神经网络架构用于反映出神经网络模型的组成以及结构等。在本实施例中,神经网络模型包括但不限于卷积神经网络模型、循环网络模型、递归神经网络模型、深度信念网络模型和生成式对抗网络模型等,在此不做限定。
101.120、对所述候选神经网络架构进行训练。
102.在本实施例中,可以是输入训练样本对候选神经网络架构进行训练。示例性的,若候选神经网络架构为卷积神经网络架构,则输入图像训练样本对卷积神经网络架构进行训练。
103.130、若所述候选神经网络架构训练完成,则基于训练完成的候选神经网络架构搜索出目标神经网络架构,其中,在所述候选神经网络架构的损失函数满足训练完成条件的情况下,确定所述候选神经网络架构训练完成,所述损失函数包括第一硬件参数对应的函数项,所述第一硬件参数用于指示目标硬件平台运行所述候选神经网络架构的硬件参数。
104.其中,训练完成条件用于指示候选神经网络架构训练完成。在本实施例中,可选的,训练完成条件包括损失函数的值小于预设阈值和/或损失函数的值趋于稳定等,在此不做限定。也就是说,如果候选神经网络架构的损失函数的值小于预设阈值和/或损失函数的值趋于稳定,则说明该候选神经网络模型训练完成。趋于稳定可以是连续的损失函数的值之间的差值小于差值阈值,在此不做限定。目标硬件平台指的是候选神经网络模型所需要运行的硬件平台,也就是说,通过该目标硬件平台来运行神经网络架构。硬件参数用于反映目标硬件平台的硬件运算能力。
105.在本实施例中,具体的,可以是在候选神经网络架构的训练过程中,每训练一次则判断一次损失函数是否满足训练完成条件,如果损失函数未满足训练完成条件,则对候选神经网络架构继续训练;如果损失函数满足训练完成条件,则确定候选神经网络架构训练完成。
106.可以理解的是,损失函数包括第一硬件参数对应的函数项,也就是说,在候选神经网络模型的训练过程中,是考虑到了神经网络模型所运行的目标硬件平台的硬件运算能力。
107.由于不同的硬件平台具有不同的硬件特性,因此仅仅以限制模型计算量或访存量
的方式来保证模型的推理效率,并不能有效发挥神经网络模型所运行的硬件平台的最大硬件运算能力。而本实施例的技术方案,通过获取候选神经网络架构;对所述候选神经网络架构进行训练;若所述候选神经网络架构训练完成,则基于训练完成的候选神经网络架构搜索出目标神经网络架构,其中,在所述候选神经网络架构的损失函数满足训练完成条件的情况下,确定所述候选神经网络架构训练完成,所述损失函数包括第一硬件参数对应的函数项,所述第一硬件参数用于指示目标硬件平台运行所述候选神经网络架构的硬件参数,也就是说,在候选神经网络模型的训练过程中,是考虑到了神经网络模型所运行的目标硬件平台的硬件运算能力,也即考虑到了不同的硬件平台具有不同的硬件特性,由此基于训练完成的候选神经网络架构搜索出目标神经网络架构,能够有效发挥神经网络模型所运行的硬件平台的硬件运算能力,尽可能发挥目标硬件平台的最大硬件运算能力,与限制模型计算量或访存量的方式来保证模型的推理效率的方案相比较,本实施例的技术方案能够实现搜索出的目标神经网络架构能够兼容推理效率和推理精度的技术效果。
108.需要说明的是,候选神经网络架构可以是设计出的原始的神经网络架构,也可以是设计出的原始神经网络架构经过处理后得到的神经网络架构,在此不做限定。
109.在一种可能的实现中,获取候选神经网络架构,包括:
110.获取初始神经网络架构,所述初始神经网络架构包括n层神经网络层,每层所述神经网络层包括至少一个初始神经网络模块,n为1以上的自然数;
111.确定每个所述初始神经网络模块的第二硬件参数,所述第二硬件参数用于指示所述目标硬件平台运行所述初始神经网络模块的硬件参数;
112.根据每个所述初始神经网络模块的第二硬件参数,确定每个所述初始神经网络模块的评估指标;
113.根据每个所述初始神经网络模块的评估指标,从各层所述神经网络层的至少一个所述初始神经网络模块中筛选出各层所述神经网络层的候选神经网络模块,以得到所述获取候选神经网络架构,其中,所述候选神经网络架构的所述神经网络层包括所述候选神经网络模块。
114.其中,初始神经网络架构可以是设计人员预先设计出的神经网络架构。评估指标用于反映初始神经网络模块在目标硬件平台运行时的硬件能力利用率。
115.在本实施例中,具体的,通过每个所述初始神经网络模块的第二硬件参数,确定出每个所述初始神经网络模块的评估指标,从而根据每个所述初始神经网络模块的评估指标,从各层所述神经网络层的至少一个所述初始神经网络模块中筛选出各层所述神经网络层的候选神经网络模块,也就是说,本实施例可以结合初始神经网络模块的第二硬件参数确定出评估指标,进而利用评估指标在各层神经网络层中筛选出评估指标较佳的候选神经网络模块,则得到的候选神经网络架构与初始神经网络架构相比较,组成较少但精度相差不多,也即候选神经网络架构与初始神经网络架构相比较,既保证了网络模型的潜在表达能力,又考虑了模型在目标硬件平台推理时的效率;在确保候选神经网络架构的多样性的同时,还进一步减少了神经网络架构的搜索空间的大小,从而减小后续架构搜索的时间消耗和计算资源消耗。
116.在一种可能的实现中,第二硬件参数包括操作数量、第二硬件延迟和理论算力中的至少一种,所述操作数量包括乘法操作数量和加法操作数量中的至少一种。
117.其中,第二硬件延迟可以是初始神经网络模块在目标硬件平台运行时的时间消耗。理论算力可以是目标硬件平台理论上所拥有的最大算力。操作数量包括乘法操作数量和加法操作数量中的至少一种,可以是操作数量包括乘法操作数量,也可以是操作数量包括加法操作数量,还可以是操作数量包括乘法操作数量和加法操作数量,在此不做限定。
118.需要说明的是,如果操作数量包括乘法操作数量和加法操作数量,则操作数量的大小为乘法操作数量与加法操作数量之和,在此不做限定。
119.在一种可能的实现中,根据每个所述初始神经网络模块的第二硬件参数,确定每个所述初始神经网络模块的评估指标,包括:
120.根据每个所述初始神经网络模块的第二硬件参数,确定每个所述初始神经网络模块的硬件利用率,其中,所述初始神经网络模块的硬件利用率与所述初始神经网络模块的操作数量正相关,所述初始神经网络模块的硬件利用率分别与所述初始神经网络模块的第二硬件延迟以及理论算力负相关;
121.确定每个所述初始神经网络模块的参数量;
122.根据每个所述初始神经网络模块的硬件利用率以及所述参数量,确定每个所述初始神经网络模块的分数,并将初始神经网络模块的分数作为所述初始神经网络模块的评估指标,所述初始神经网络模块的分数分别与所述初始神经网络模块的硬件利用率以及所述参数量正相关。
123.其中,正相关是指一个变量增长,另一个变量也跟着增长。两个变量变动方向相同,一个变量由大到小或由小到大变化时,另一个变量亦由大到小或由小到大变化。负相关是指在因变量值随自变量值的增大(减小)而减小(增大),在这种情况下,因变量和自变量的相关系数为负值,即负相关。
124.需要说明的是,如果初始神经网络架构为卷积神经网络架构,所述参数量包括所述卷积神经网络架构的卷积核数量。
125.在一种可能的实现中,所述初始神经网络模块的分数是通过第一公式确定的,所述第一公式包括:
126.s
ij
=k*u
ij
*p
ij

127.其中,s
ij
表示初始神经网络模块的分数,u
ij
表示硬件利用率,p
ij
表示参数量,k表示常量系数,i表示某一神经网络层,j表示某一初始神经网络模块。
128.具体的,s
ij
表示第i层神经网络层中的第j个初始神经网络模块的分数,u
ij
表示第i层神经网络层中的第j个初始神经网络模块的硬件利用率。p
ij
表示第i层神经网络层中的第j个初始神经网络模块的参数量。
129.在一种可能的实现中,所述初始神经网络模块的硬件利用率是通过第二公式确定的,所述第二公式包括:
130.u
ij
=f
ij
/(t
ij
*c);
131.其中,f
ij
表示操作数量,t
ij
表示第二硬件延迟,c表示理论算力。
132.具体的,f
ij
表示第i层神经网络层中的第j个初始神经网络模块的操作数量,t
ij
表示第i层神经网络层中的第j个初始神经网络模块的第二硬件延迟,c表示目标硬件平台的理论算力。
133.在一种可能的实现中,根据每个所述初始神经网络模块的评估指标,从各层所述
神经网络层的至少一个所述初始神经网络模块中筛选出各层所述神经网络层的候选神经网络模块,包括:
134.若所述初始神经网络模块的分数大于分数阈值,则将所述初始神经网络模块作为所述候选神经网络模块。
135.示例性的,假设第i层神经网络层包括初始神经网络模块a、初始神经网络模块b和初始神经网络模块c,若初始神经网络模块b的分数和初始神经网络模块c的分数大于分数阈值,初始神经网络模块a小于或等于分数阈值,则初始神经网络模块b和初始神经网络模块作为候选神经网络模块。
136.需要说明的是,分数阈值可以是一个经验值,即经过试验确定出的经验值。此外,初始神经网络模块对应的分数阈值与所述初始神经网络模块所在的所述神经网络层的所有所述初始神经网络模块的分数有关,或者,所述初始神经网络模块对应的分数阈值与所述初始神经网络架构的所有所述初始神经网络模块的分数有关。
137.示例性的,假设第1层神经网络层包括初始神经网络模块a、初始神经网络模块b和初始神经网络模块c,第2层神经网络层包括初始神经网络模块d和初始神经网络模块e,初始神经网络模块a的分数为a,初始神经网络模块b的分数为b,初始神经网络模块c的分数为c,初始神经网络模块d的分数为d,初始神经网络模块e的分数为e,则可以是第1层神经网络层和第2层神经网络层的分数阈值相同,该相同的阈值为(a+b+c+d+e)/5。此外,还可以是第1层神经网络层的阈值为(a+b+c)/3,第2层神经网络层的阈值为(d+e)/2。
138.可以理解的是,初始神经网络模块对应的分数阈值与所述初始神经网络模块所在的所述神经网络层的所有所述初始神经网络模块的分数有关,或者,所述初始神经网络模块对应的分数阈值与所述初始神经网络架构的所有所述初始神经网络模块的分数有关,则可以根据初始神经网络架构的实际情况适应性确定出对应的分数阈值,可以提高候选神经网络模块的筛选准确性,进而进一步提高确定出的目标神经网络架构的推理效率和推理精度。
139.在一种可能的实现中,可以是对候选神经网络架构中的所有神经网络层进行训练,也可以是对候选神经网络架构中的部分待训练的神经网络层进行训练,在此不做限定。此外,对候选神经网络架构中的部分待训练的神经网络层进行训练,可以是所有部分待训练的神经网络层同时进行训练,也可以是所有部分待训练的神经网络层分批训练,在此不做限定。
140.在一种可能的实现中,所述候选神经网络架构包括n层神经网络层,n层所述神经网络层预先划分为至少两部分待训练的神经网络层,至少两部分待训练的神经网络层包括l层第一神经网络层和m层第二神经网络层,其中,n为2以上的自然数,l和m为1以上的自然数,l+m≤n;
141.所述对所述候选神经网络架构进行训练,包括:
142.保持m层第二神经网络层固定,并对l层第一神经网络层进行训练;
143.在l层第一神经网络层训练完成的情况下,保持l层第一神经网络层固定,并对m层第二神经网络层进行训练。
144.其中,所述候选神经网络架构的损失函数满足训练完成条件包括l层第一神经网络层的损失函数满足所述训练完成条件以及m层第二神经网络层的损失函数满足所述训练
完成条件。
145.在本实施例中,具体的,首先保持m层第二神经网络层,并对l层第一神经网络层进行训练,也就是说,在对l层第一神经网络层训练的过程中,m层第二神经网络层并没有在训练。如果l层第一神经网络层的损失函数满足所述训练完成条件,此时则说明l层第一神经网络层训练完成。然后,保持l层第一神经网络层固定,并对m层第二神经网络层进行训练,也就是说,在对m层第二神经网络层进行训练的过程中,l层第一神经网络层并没有在训练。此时如果m层第二神经网络层的损失函数满足训练完成条件,则可以认为候选神经网络架构训练完成。
146.本实施例的技术方案,将n层所述神经网络层预先划分为至少两部分待训练的神经网络层,至少两部分待训练的神经网络层包括l层第一神经网络层和m层第二神经网络层,先保持m层第二神经网络层固定,并对l层第一神经网络层进行训练;在l层第一神经网络层训练完成的情况下,保持l层第一神经网络层固定,并对m层第二神经网络层进行训练,通过分阶段训练的方式,可以减少同时训练的神经网络层的数量过多而导致的训练所需要的算力,在保证网络模型精度和效率的同时,进一步减少架构搜索时间。
147.可选的,若l为2以上的自然数,则l层第一神经网络层为连续的第一神经网络层。若m为2以上的自然数,则m层第二神经网络层为连续的第二神经网络层。
148.在一种可能的实现中,l层第一神经网络层远离候选神经网络架构的输入层而m层第二神经网络层靠近候选神经网络架构的输入层。
149.以卷积神经网络为例,网络低层从原始输入图像数据中提取low-level特征,如颜色和纹理等,通常计算量较大,需要较多的训练数据;网络高层学习目标任务相关的high-level特征,需要的计算量较小。因此,本发明将待搜索的n层神经网络层,划分为至少两部分,首先针对高层神经网络层进行训练,待高层神经网络层训练完成后训练底层神经网络层。
150.在一种可能的实现中,所述第一硬件参数包括第一硬件延迟和内存占用中的至少一种。
151.其中,第一硬件延迟可以是候选神经网络架构在目标硬件平台运行时的时间消耗。可选的,第一硬件延时可以通过各初始神经网络模块的第二硬件延时确定。具体的,可以将候选神经网络架构中保留的初始神经网络模块的第二硬件延时之和,作为第一硬件延时。内存占用指的是此进程的运行开销。在本实施例中,内存占用可以是候选神经网络架构的运行开销。在一种可能的实现中,所述损失函数包括:
152.l(a,wa)=ce(a,wa)+α*lat(a)
β
+γ*mem(a)
δ

153.lat(a)=∑i∑jm
ij
*lat(block
ij
);
154.mem(a)=∑i∑jm
ij
*mem(block
ij
);
155.其中,l(a,wa)表示损失函数,a表示候选神经网络架构,wa表示候选神经网络架构的权重参数,ce(a,wa)表示候选神经网络架构的交叉熵损失项,lat(a)表示第二硬件延迟,mem(a)表示内存占用,超参数α表示第二硬件延迟的惩罚系数,超参数γ表示内存占用项的惩罚系数,超参数β用于调节第二硬件延迟对应的函数项的数值大小,超参数δ用于内存占用对应的函数项的数值大小,block
ij
表示第i层的第j个候选神经网络模块,m
ij
为候选神经网络架构中的softmax层所配置的gumbel-softmax函数产生的掩膜值,m
ij
表示所述候选神
经网络架构的候选神经网络模块的采样概率。
156.本实施例的技术方案,损失函数包括交叉熵损失项、第二硬件延迟对应的函数项和内存占用的函数项,从而兼顾模型的推理效率以及推理精度。
157.需要说明的是,基于训练完成的候选神经网络架构搜索出目标神经网络架构,可以是将训练完成的候选神经网络架构作为目标神经网络架构,也可以是从训练完成的候选神经网络架构中进行筛选,从而得到目标神经网络架构,在此不做限定。
158.在一种可能的实现中,所述候选神经网络架构包括n层神经网络层,n层神经网络层中的至少一层所述神经网络层为参与训练的神经网络层,n为2以上的自然数;
159.所述基于训练完成的候选神经网络架构搜索出目标神经网络架构,包括:
160.获取每层参与训练的神经网络层的每个候选神经网络模块的采样概率,所述候选神经网络模块的采样概率是所述候选神经网络架构在训练的过程中确定的;
161.在每层参与训练的神经网络层中保留最大的采样概率所对应的所述候选神经网络模块,以得到所述目标神经网络架构。
162.本实施例的技术方案,通过候选神经网络架构在训练过程中确定的候选神经网络模块的采样概率,进而在每层参与训练的神经网络层中保留最大的采样概率所对应的所述候选神经网络模块,则得到的目标神经网络架构的推理效率能够进一步提高。
163.以下实施例以神经网络架构为卷积神经网络架构,目标硬件平台为ai加速器为例对本方案进行说明。
164.本实施例的方法包括:
165.步骤a:设计卷积神经网络架构的搜索空间。
166.步骤b:统计搜索空间中各个候选卷积神经网络模块的第二硬件延迟和内存占用。
167.步骤c:分阶段训练超网络(候选卷积神经网络架构),对超网络进行采样,获取子网络模型结构。
168.步骤d:训练子网络模型,获取最终的网络模型。
169.其中,步骤a包括:
170.步骤a-1:构建基础单元模块(初始卷积神经网络模块)集合。
171.步骤a-2:初始化网络架构的搜索空间,得到初始卷积神经网络架构。
172.步骤a-3:计算搜索空间中各初始卷积神经网络模块的得分。
173.步骤a-4:筛选出符合要求的各层初始卷积神经网络模块,确定最终网络架构的搜索空间,也即得到候选卷积神经网络架构。
174.在步骤a-1中,结合ai加速器硬件特性,将业内经典网络模型如resnet,mobilenet和senet等网络作为基本卷积神经网络架构,从中选择合适并具有代表的基础单元模块,如残差模块和注意力模块等,构建基础单元模块集合。这些基础单元模块具有不同组成结构,卷积核尺寸,扩展率和通道分组数目等,保证了搜索空间中模块的多样性。
175.在步骤a-2中,本发明选择在resnet50基础上来构建网络模型的搜索空间。resnet50网络架构决定了网络总层数,以及网络各层输入和输出特征图的尺寸大小。将网络的前面三层和最后三层的参数设置固定,剩下各层从步骤a-1中各个基础单元模块集合中进行搜索,以完成该网络搜索空间的初始化。在网络模型中,各个待搜索层的滤波器数目由人工选择决定,通常网络低层的滤波器个数少,网络高层的滤波器个数多。
176.在步骤a-3中,首先根据步骤a-2得到已经初始化的搜索空间,统计网络各层的基础单元模块参数量p
ij
;然后,计算各个基础单元模块在目标ai加速器平台上推理时的硬件利用率u
ij
,进一步得到该基础单元模块得分s
ij
,计算如式(1)所示:
177.s
ij
=k*u
ij
*p
ij
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
178.其中,下标i表示该层在网络中的位置索引,下标j表示当前基础单元模块在单元模块集合中的位置索引,k为常量系数。基础单元模块在ai硬件加速器上推理时的利用率u
ij
计算如式(2)所示:
179.u
ij
=f
ij
/(t
ij
*c)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
180.其中,f
ij
表示该模块的乘法和加法操作数量,t
ij
表示该模块在ai加速器上的第二硬件延迟,c表示该ai加速器的理论算力。
181.在步骤a-4中,按经验设置基础单元模块的得分阈值,并根据阈值筛选逐层搜索空间的基础模块,在各层中保留得分大于阈值的基础单元模块,以构成整个网络模型的搜索空间。保留的基础单元模块作为候选卷积神经网络模块。筛选后的搜索空间既保证了网络模型的潜在表达能力,又考虑了模型在ai加速器推理时的效率;在确保搜索空间多样性的同时,还进一步减少了搜索空间的大小,从而减小后续架构搜索的时间消耗和计算资源消耗。
182.在步骤b中,在目标ai加速器硬件平台上,统计网络搜索空间中各个基础单元模块运行时的内存占用和第二硬件延迟。其中,硬件延迟可直接从步骤a-3中获取,运行时的内存占用可从ai加速器配套的软件工具中得到。
183.对于步骤c来说,步骤c包括:
184.步骤c-1:准备候选卷积神经网络模型训练的数据样本。
185.步骤c-2:设计候选卷积神经网络模型训练的损失函数。
186.步骤c-3:固定低层网络架构,训练搜索高层网络架构。
187.步骤c-4:固定高层网络架构,训练搜索低层网络架构。
188.步骤c-5:对网络架构进行采样,获取最终的目标卷积神经网络架构。
189.在步骤c-1中,选择cifar-10作为网络模型的训练数据集。该数据集总共有6万张彩色图片,5万张图片用于训练,1万张图片用于测试,图片内容主要涉及不同的交通工具和动物等10个类别。在5万张训练图片中,随机选择4万张图片作为训练样本,用于模型训练;1万张图片作为验证样本,用于模型训练时验证。
190.在步骤c-2中,结合考虑目标ai加速硬件特性,设计网络模型训练的损失函数。该损失函数考虑了模型分类准确率,以及模型在目标硬件平台上运行时的硬件延迟和内存占用。具体表达式如(3)所示:
191.l(a, wa)=ce(a, wa)+α*lat(a)
β
+γ*mem(a)
δ
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
192.其中,a表示候选卷积神经网络架构,wa表示模型的权重参数,ce(a,wa)为模型的交叉熵损失项,lat(a)表示候选卷积神经网络架构在目标硬件平台上运行时的第一硬件延迟,mem(a)代表候选卷积神经网络架构在硬件平台上运行时的内存占用。超参数α和γ分别为第一硬件延迟项和内存占用项的惩罚系数,超参数β和δ分别用于调节硬件延迟项和内存占用项的数值大小。
193.候选卷积神经网络架构a能够以概率p(θ)从搜索空间中采样获得。θ为softmax函
数产生的采样参数,表示从搜索空间中采样获得候选卷积神经网络架构的概率。给定一个高维离散的搜索空间,从中搜索最优网络架构问题可以转换为优化问题,即通过优化包含各层搜索模块集合的超网络模型采样概率p(θ),以最小化期望损失值,具体如公式(4)所示。
194.min
θ
min
waea~p(θ)
{l(a,wa)}(4)
195.为了能够使用梯度下降算法优化上式,采用gumbel-softmax函数在离散的单元模块搜索过程中,引入关于采样概率θ的连续分布。结合步骤b中得到的各个模块硬件延迟,公式(3)中候选卷积神经网络架构的第一硬件延迟项可以表示为式(5)所示:
196.lat(a)=∑i∑jm
ij
*lat(block
ij
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
197.其中,block
ij
为候选卷积神经网络架构中的第i层的第j个基础单元模块,lat(block
ij
)为该基础单元模块的在硬件平台上运行时的时间消耗,m
ij
为gumbel-softmax函数产生的掩膜值,表示该候选卷积神经网络架构的采样概率。该公式假设在目标ai加速硬件平台上,各个算子的运行时间相互独立。与此类似,内存占用mem(a)计算如式(6)所示:
198.mem(a)=∑i∑jm
ij
*mem(block
ij
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
199.其中,mem(block
ij
)为模块block
ij
在硬件平台上运行的内存占用。通过上述步骤,将候选卷积神经网络架构在高维离散空间的搜索问题,转换为一个可以使用梯度下降算法的优化问题。
200.在步骤c-3中,除了候选卷积神经网络架构型直接处理原始输入图像的前面三层和与分类相关的最后三层固定,网络中间有n层需要在训练中搜索各自最合适的基础单元模块。网络低层从原始输入图像数据中提取low-level特征,如颜色和纹理等,通常计算量较大,需要较多的训练数据;网络高层学习目标任务相关的high-level特征,需要的计算量较小。因此,本发明将待搜索的n层网络,划分为两部分:靠近网络低层的m层和网络高层的n-m层。在超网络模型开始训练时,对网络模型权重进行随机初始化,并固定网络低层的m层,对网络高层的n-m层进行训练搜索。待损失函数趋于稳定不再下降时,停止网络训练。
201.在步骤c-4中,固定步骤c-3中训练完毕的网络后n-m层,对靠近前面m层继续进行训练搜索。待损失函数趋于稳定不再下降时,停止网络训练。采用分阶段训练模型的方法,可以在保证网络模型精度和效率的同时,进一步减少架构搜索时间。
202.在步骤c-5中,根据候选卷积神经网络架构中各层基础单元模块的采样概率,对候选卷积神经网络架构中的基础单元模块进行采样,获得子网络架构。
203.在步骤d中,随机初始化子网络架构的权重参数,使用交叉熵分类损失函数,继续在cifar-10数据集上训练子网络模型,选择在验证集精度最高的模型,作为最终适用于ai加速器的目标卷积神经网络模型。
204.为了证明本方案切实可行,本发明以resnet50作为基础网络,在cifar-10数据集上进行卷积神经网络架构搜索实验。在进行网络架构搜索训练之前,在某ai计算器平台上统计搜索空间中各候选模块的硬件利用率,时间消耗和内存占用。选择数据集中4万张图片作为训练样本用于模型训练,1万张图片作为验证集以筛选模型,剩下的1万张图片用于搜索出来的模型性能评估。本发明选择top3分类准确率,以及前向推理的时间消耗和内存占用,作为性能评价标准,实验结果如下表:
[0205][0206]
由上表中结果可知,相比原始resnet50模型,本发明搜索出来的模型nas-model在cifar-10上的top3识别率仅下降0.5%,运行时的时间消耗减少了55%,内存占用减少了49.22%。实验结果表明本发明的架构搜索方法在保证模型识别性能的同时,还大幅减少了模型在ai加速器平台上运行时的硬件延迟和内存占用。
[0207]
实施例二
[0208]
请参阅图2,图2是本发明实施例公开的一种神经网络架构的搜索装置的结构示意图。该装置可以应用于终端。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能电视以及智能车载等,但并不局限于此。此外,该装置还可以应用于服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(内容分发网络,content delivery network)、以及大数据和人工智能平台等基础云计算服务的云服务器,本技术在此不做限制。此外,该装置还可以应用于具备数据处理能力的处理器等,例如gpu(图形处理器,graphics processing unit)芯片、cpu(中央处理器,central processing unit)芯片和ai(人工智能,artificial intelligence)加速器等,在此不做限定。
[0209]
如图2所述,本实施例的神经网络架构的搜索装置可以包括:
[0210]
获取模块210,用于获取候选神经网络架构;
[0211]
训练模块220,用于对所述候选神经网络架构进行训练;
[0212]
架构搜索模块230,用于若所述候选神经网络架构训练完成,则基于训练完成的候选神经网络架构搜索出目标神经网络架构,其中,在所述候选神经网络架构的损失函数满足训练完成条件的情况下,确定所述候选神经网络架构训练完成,所述损失函数包括第一硬件参数对应的函数项,所述第一硬件参数用于指示目标硬件平台运行所述候选神经网络架构的硬件参数。
[0213]
在一种可能的实现中,获取模块210包括:
[0214]
第一获取单元,用于获取初始神经网络架构,所述初始神经网络架构包括n层神经网络层,每层所述神经网络层包括至少一个初始神经网络模块,n为1以上的自然数;
[0215]
第一参数确定单元,用于确定每个所述初始神经网络模块的第二硬件参数,所述第二硬件参数用于指示所述目标硬件平台运行所述初始神经网络模块的硬件参数;
[0216]
评估指标确定单元,用于根据每个所述初始神经网络模块的第二硬件参数,确定每个所述初始神经网络模块的评估指标;
[0217]
第二获取单元,用于根据每个所述初始神经网络模块的评估指标,从各层所述神经网络层的至少一个所述初始神经网络模块中筛选出各层所述神经网络层的候选神经网
络模块,以得到所述获取候选神经网络架构,其中,所述候选神经网络架构的所述神经网络层包括所述候选神经网络模块。
[0218]
在一种可能的实现中,所述第二硬件参数包括操作数量、第二硬件延迟和理论算力中的至少一种,所述操作数量包括乘法操作数量和加法操作数量中的至少一种。
[0219]
在一种可能的实现中,评估指标确定单元用于根据每个所述初始神经网络模块的第二硬件参数,确定每个所述初始神经网络模块的硬件利用率,其中,所述初始神经网络模块的硬件利用率与所述初始神经网络模块的操作数量正相关,所述初始神经网络模块的硬件利用率分别与所述初始神经网络模块的第二硬件延迟以及理论算力负相关;
[0220]
确定每个所述初始神经网络模块的参数量;
[0221]
根据每个所述初始神经网络模块的硬件利用率以及所述参数量,确定每个所述初始神经网络模块的分数,并将初始神经网络模块的分数作为所述初始神经网络模块的评估指标,所述初始神经网络模块的分数分别与所述初始神经网络模块的硬件利用率以及所述参数量正相关。
[0222]
在一种可能的实现中,所述初始神经网络架构为卷积神经网络架构,所述参数量包括所述卷积神经网络架构的卷积核数量。
[0223]
在一种可能的实现中,所述初始神经网络模块的分数是评估指标确定单元通过第一公式确定的,所述第一公式包括:
[0224]sij
=k*u
ij
*p
ij

[0225]
其中,s
ij
表示初始神经网络模块的分数,u
ij
表示硬件利用率,p
ij
表示参数量,k表示常量系数,i表示某一神经网络层,j表示某一初始神经网络模块;
[0226]
和/或,
[0227]
所述初始神经网络模块的硬件利用率是评估指标确定单元通过第二公式确定的,所述第二公式包括:
[0228]uij
=f
ij
/(t
ij
*c);
[0229]
其中,f
ij
表示操作数量,t
ij
表示第二硬件延迟,c表示理论算力。
[0230]
在一种可能的实现中,第二获取单元用于若所述初始神经网络模块的分数大于分数阈值,则将所述初始神经网络模块作为所述候选神经网络模块;
[0231]
其中,所述初始神经网络模块对应的分数阈值与所述初始神经网络模块所在的所述神经网络层的所有所述初始神经网络模块的分数有关,或者,所述初始神经网络模块对应的分数阈值与所述初始神经网络架构的所有所述初始神经网络模块的分数有关。
[0232]
在一种可能的实现中,所述候选神经网络架构包括n层神经网络层,n层所述神经网络层预先划分为至少两部分待训练的神经网络层,至少两部分待训练的神经网络层包括l层第一神经网络层和m层第二神经网络层,其中,n为2以上的自然数,l和m为1以上的自然数,l+m≤n;
[0233]
训练模块220用于保持m层第二神经网络层固定,并对l层第一神经网络层进行训练;
[0234]
在l层第一神经网络层训练完成的情况下,保持l层第一神经网络层固定,并对m层第二神经网络层进行训练;
[0235]
其中,所述候选神经网络架构的损失函数满足训练完成条件包括l层第一神经网
络层的损失函数满足所述训练完成条件以及m层第二神经网络层的损失函数满足所述训练完成条件。
[0236]
在一种可能的实现中,所述第一硬件参数包括第一硬件延迟和内存占用中的至少一种。
[0237]
在一种可能的实现中,所述损失函数包括:
[0238]
l(a,wa)=ce(a,wa)+α*lat(a)
β
+γ*mem(a)
δ

[0239]
lat(a)=∑i∑jm
ij
*lat(block
ij
);
[0240]
mem(a)=∑i∑jm
ij
*mem(block
ij
);
[0241]
其中,l(a,wa)表示损失函数,a表示候选神经网络架构,wa表示候选神经网络架构的权重参数,ce(a,wa)表示候选神经网络架构的交叉熵损失项,lat(a)表示第二硬件延迟,mem(a)表示内存占用,超参数α表示第二硬件延迟的惩罚系数,超参数γ表示内存占用项的惩罚系数,超参数β用于调节第二硬件延迟对应的函数项的数值大小,超参数δ用于内存占用对应的函数项的数值大小,block
ij
表示第i层的第j个候选神经网络模块,m
ij
为候选神经网络架构中的softmax层所配置的gumbel-softmax函数产生的掩膜值,m
ij
表示所述候选神经网络架构的候选神经网络模块的采样概率。
[0242]
在一种可能的实现中,所述候选神经网络架构包括n层神经网络层,n层神经网络层中的至少一层所述神经网络层为参与训练的神经网络层,n为2以上的自然数;
[0243]
架构搜索模块230用于获取每层参与训练的神经网络层的每个候选神经网络模块的采样概率,所述候选神经网络模块的采样概率是所述候选神经网络架构在训练的过程中确定的;
[0244]
在每层参与训练的神经网络层中保留最大的采样概率所对应的所述候选神经网络模块,以得到所述目标神经网络架构。
[0245]
可以理解的是,本实施例的装置的功能以及其具备的有益效果可以参考上述任一实施例的描述,在此不做限定。
[0246]
实施例三
[0247]
请参阅图3,图3是本发明实施例公开的又一种神经网络架构的搜索装置的结构示意图。如图3所示,该神经网络架构的搜索装置可以包括:
[0248]
存储有可执行程序代码的存储器301;
[0249]
与存储器301耦合的处理器302;
[0250]
处理器302调用存储器301中存储的可执行程序代码,执行本发明实施例一所描述的神经网络架构的搜索方法中的步骤。
[0251]
实施例四
[0252]
本发明实施例公开了一种计算机可存储介质,该计算机存储介质存储有计算机指令,该计算机指令被调用时,用于执行本发明实施例一所描述的神经网络架构的搜索方法中的步骤。
[0253]
实施例五
[0254]
本发明实施例公开了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机存储介质,且该计算机程序可操作来使计算机执行实施例一所描述的神经网络架构的搜索方法中的步骤。
[0255]
以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0256]
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机存储介质中,存储介质包括只读存储器(read-only memory,rom)、随机存储器(random access memory,ram)、可编程只读存储器(programmable read-only memory,prom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、一次可编程只读存储器(one-time programmable read-only memory,otprom)、电子抹除式可复写只读存储器(electrically-erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
[0257]
最后应说明的是:本发明实施例公开的一种神经网络架构的搜索方法、装置和计算机存储介质所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。

技术特征:
1.一种神经网络架构的搜索方法,其特征在于,所述方法包括:获取候选神经网络架构;对所述候选神经网络架构进行训练;若所述候选神经网络架构训练完成,则基于训练完成的候选神经网络架构搜索出目标神经网络架构,其中,在所述候选神经网络架构的损失函数满足训练完成条件的情况下,确定所述候选神经网络架构训练完成,所述损失函数包括第一硬件参数对应的函数项,所述第一硬件参数用于指示目标硬件平台运行所述候选神经网络架构的硬件参数。2.根据权利要求1所述的方法,其特征在于,所述获取候选神经网络架构,包括:获取初始神经网络架构,所述初始神经网络架构包括n层神经网络层,每层所述神经网络层包括至少一个初始神经网络模块,n为1以上的自然数;确定每个所述初始神经网络模块的第二硬件参数,所述第二硬件参数用于指示所述目标硬件平台运行所述初始神经网络模块的硬件参数;根据每个所述初始神经网络模块的第二硬件参数,确定每个所述初始神经网络模块的评估指标;根据每个所述初始神经网络模块的评估指标,从各层所述神经网络层的至少一个所述初始神经网络模块中筛选出各层所述神经网络层的候选神经网络模块,以得到所述获取候选神经网络架构,其中,所述候选神经网络架构的所述神经网络层包括所述候选神经网络模块。3.根据权利要求2所述的方法,其特征在于,所述第二硬件参数包括操作数量、第二硬件延迟和理论算力中的至少一种,所述操作数量包括乘法操作数量和加法操作数量中的至少一种;所述根据每个所述初始神经网络模块的第二硬件参数,确定每个所述初始神经网络模块的评估指标,包括:根据每个所述初始神经网络模块的第二硬件参数,确定每个所述初始神经网络模块的硬件利用率,其中,所述初始神经网络模块的硬件利用率与所述初始神经网络模块的操作数量正相关,所述初始神经网络模块的硬件利用率分别与所述初始神经网络模块的第二硬件延迟以及理论算力负相关;确定每个所述初始神经网络模块的参数量;根据每个所述初始神经网络模块的硬件利用率以及所述参数量,确定每个所述初始神经网络模块的分数,并将初始神经网络模块的分数作为所述初始神经网络模块的评估指标,所述初始神经网络模块的分数分别与所述初始神经网络模块的硬件利用率以及所述参数量正相关。4.根据权利要求3所述的方法,其特征在于,所述初始神经网络模块的分数是通过第一公式确定的,所述第一公式包括:s
ij
=k*u
ij
*p
ij
;其中,s
ij
表示初始神经网络模块的分数,u
ij
表示硬件利用率,p
ij
表示参数量,k表示常量系数,i表示某一神经网络层,j表示某一初始神经网络模块;和/或,所述初始神经网络模块的硬件利用率是通过第二公式确定的,所述第二公式包括:
u
ij
=f
ij
/(t
ij
*c);其中,f
ij
表示操作数量,t
ij
表示第二硬件延迟,c表示理论算力。5.根据权利要求1所述的方法,其特征在于,所述候选神经网络架构包括n层神经网络层,n层所述神经网络层预先划分为至少两部分待训练的神经网络层,至少两部分待训练的神经网络层包括l层第一神经网络层和m层第二神经网络层,其中,n为2以上的自然数,l和m为1以上的自然数,l+m≤n;所述对所述候选神经网络架构进行训练,包括:保持m层第二神经网络层固定,并对l层第一神经网络层进行训练;在l层第一神经网络层训练完成的情况下,保持l层第一神经网络层固定,并对m层第二神经网络层进行训练;其中,所述候选神经网络架构的损失函数满足训练完成条件包括l层第一神经网络层的损失函数满足所述训练完成条件以及m层第二神经网络层的损失函数满足所述训练完成条件。6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一硬件参数包括第一硬件延迟和内存占用中的至少一种;所述损失函数包括:l(a,w
a
)=ce(a,w
a
)+α*lat(a)
β
+γ*mem(a)
δ
;lat(a)=∑
i

j
m
ij
*lat(block
ij
);mem(a)=∑
i

j
m
ij
*mem(block
ij
);其中,l(a,w
a
)表示损失函数,a表示候选神经网络架构,w
a
表示候选神经网络架构的权重参数,ce(a,w
a
)表示候选神经网络架构的交叉熵损失项,lat(a)表示第二硬件延迟,mem(a)表示内存占用,超参数α表示第二硬件延迟的惩罚系数,超参数γ表示内存占用项的惩罚系数,超参数β用于调节第二硬件延迟对应的函数项的数值大小,超参数δ用于内存占用对应的函数项的数值大小,block
ij
表示第i层的第j个候选神经网络模块,m
ij
为候选神经网络架构中的softmax层所配置的gumbel-softmax函数产生的掩膜值,m
ij
表示所述候选神经网络架构的候选神经网络模块的采样概率。7.根据权利要求1-5任一项所述的方法,其特征在于,所述候选神经网络架构包括n层神经网络层,n层神经网络层中的至少一层所述神经网络层为参与训练的神经网络层,n为2以上的自然数;所述基于训练完成的候选神经网络架构搜索出目标神经网络架构,包括:获取每层参与训练的神经网络层的每个候选神经网络模块的采样概率,所述候选神经网络模块的采样概率是所述候选神经网络架构在训练的过程中确定的;在每层参与训练的神经网络层中保留最大的采样概率所对应的所述候选神经网络模块,以得到所述目标神经网络架构。8.一种神经网络架构的搜索装置,其特征在于,所述装置包括:获取模块,用于获取候选神经网络架构;训练模块,用于对所述候选神经网络架构进行训练;架构搜索模块,用于若所述候选神经网络架构训练完成,则基于训练完成的候选神经网络架构搜索出目标神经网络架构,其中,在所述候选神经网络架构的损失函数满足训练
完成条件的情况下,确定所述候选神经网络架构训练完成,所述损失函数包括第一硬件参数对应的函数项,所述第一硬件参数用于指示目标硬件平台运行所述候选神经网络架构的硬件参数。9.一种神经网络架构的搜索装置,其特征在于,所述装置包括:存储有可执行程序代码的存储器;与所述存储器耦合的处理器;所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-7任一项所述的神经网络架构的搜索方法。10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行如权利要求1-7任一项所述的神经网络架构的搜索方法。

技术总结
本发明公开了一种神经网络架构的搜索方法、装置和计算机存储介质,该方法包括:获取候选神经网络架构;对所述候选神经网络架构进行训练;若所述候选神经网络架构训练完成,则基于训练完成的候选神经网络架构搜索出目标神经网络架构,其中,在所述候选神经网络架构的损失函数满足训练完成条件的情况下,确定所述候选神经网络架构训练完成,所述损失函数包括第一硬件参数对应的函数项,所述第一硬件参数用于指示目标硬件平台运行所述候选神经网络架构的硬件参数。可见,实施本发明能够实现搜索出的目标神经网络架构能够兼容推理效率和推理精度的技术效果。推理精度的技术效果。推理精度的技术效果。


技术研发人员:汪厚峄 南楠 丁然
受保护的技术使用者:珠海全志科技股份有限公司
技术研发日:2023.03.23
技术公布日:2023/7/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐