神经网络搜索方法、装置和计算机设备

文档序号:33386531发布日期:2023-03-08 08:29阅读:31来源:国知局
神经网络搜索方法、装置和计算机设备

1.本技术涉及计算机技术领域,特别是涉及一种神经网络搜索方法、装置和计算机设备。


背景技术:

2.网络结构的设计是提升网络分类性能的关键,神经网络结构搜索(nas,neural architecture search)作为一种网络结构的设计手段,本质是将人工调整神经网络的过程变成自动执行任务以发现更复杂的神经网络架构的过程。
3.nas一般分为两个方向:第一是基于强化学习和演化算法的神经网络结构搜索,第二是基于梯度下降的神经网络结构搜索。基于强化学习的神经网络架构搜索,以nas-net(神经网络架构搜索)为例,由于每层算子不固定、规格参数也不固定、连接关系也不固定、网络层数不固定导致搜索空间维度特别大,造成网络架构搜索时间特别长;而基于梯度下降的神经网络结构搜索,以darts为例,需要的搜索时间不长但是硬件信息不能通过梯度进行搜索,无法建立搜索模型与硬件数据模型之间的连接关系,导致搜索到的神经网络模型在部署硬件上性能较差。
4.可见,目前的神经网络结构搜索方法,具有搜索速度与搜索到的神经网络模型在部署芯片上性能和精度无法兼顾的问题。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种神经网络搜索方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,以使搜索到的神经网络模型同时兼顾精度和部署芯片上的性能。
6.第一方面,本技术提供了一种神经网络搜索方法,所述方法包括:
7.确定目标网络层数;
8.在第i次迭代搜索过程中,根据所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果,其中i为大于0的整数;
9.针对任一所述初始化神经网络模型,在所述判断结果表征所述初始化神经网络模型的表达能力满足预设条件的情况下,确定所述初始化神经网络模型的片内存储信息和片外存储信息;
10.针对任一所述初始化神经网络模型,在所述初始化神经网络模型的所述片内存储信息和所述片外存储信息满足存储条件的情况下,根据目标带宽利用率确定所述初始化神经网络模型的性能数据;
11.根据各所述初始化神经网络模型的所述性能数据,确定目标神经网络模型。
12.在一个实施例中,所述方法还包括:
13.在各所述初始化神经网络模型对应的所述判断结果皆表征所述初始化神经网络
模型的表达能力未满足所述预设条件的情况下,进入下一次迭代搜索过程,重复根据所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果的步骤,直至得到表征所述初始化神经网络模型的表达能力满足所述预设条件的判断结果对应的初始化神经网络模型为止,或者,直至迭代次数达到目标次数为止;
14.对所述目标网络层数进行调整后,重复根据调整后的所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果的步骤。
15.在一个实施例中,所述确定所述初始化神经网络模型的片内存储信息和片外存储信息,包括:
16.根据所述初始化神经网络模型的原始网络图层,确定芯片计算图;
17.建立所述原始网络图层与所述芯片计算图之间的层映射关系;
18.获取所述芯片计算图中的每一层计算图的子片内存储信息,以及获取所述初始化神经网络模型的片外存储信息;
19.根据所述层映射关系、各层所述计算图的所述子片内存储信息,确定所述初始化神经网络模型的片内存储信息。
20.在一个实施例中,所述在所述初始化神经网络模型的所述片内存储信息和所述片外存储信息满足存储条件的情况下,根据目标带宽利用率确定所述初始化神经网络模型的性能数据,包括:
21.获取目标存储参数,所述目标存储参数包括目标片外存储参数、目标片内存储参数;
22.将所述初始化神经网络模型的所述片内存储信息和所述片外存储信息,与所述目标片外存储参数、所述目标片内存储参数进行对比,得到所述初始化神经网络模型的对比结果,所述对比结果包括第一对比结果或者第二对比结果,所述第一对比结果表征所述片内存储信息和所述片外存储信息满足所述存储条件,所述第二对比结果表征所述初始化神经网络模型的所述片内存储信息和所述片外存储信息未满足所述存储条件;
23.在得到所述第一对比结果的情况下,根据目标带宽利用率确定所述初始化神经网络模型的性能数据。
24.在一个实施例中,所述将所述初始化神经网络模型的所述片内存储信息和所述片外存储信息,与所述目标片外存储参数、所述目标片内存储参数进行对比,得到对比结果,包括:
25.在所述片内存储信息小于或等于所述目标片内存储参数,以及所述片外存储信息小于或等于所述目标片外存储参数的情况下,得到所述第一对比结果;或者,
26.在所述片内存储信息大于所述目标片内存储参数,和/或所述片外存储信息大于所述目标片内存储参数的情况下,得到所述第二对比结果。
27.在一个实施例中,所述方法还包括:
28.在各所述初始化神经网络模型对应的对比结果皆为所述第二对比结果的情况下,进入下一次迭代搜索过程,将各所述初始化神经网络模型对应的对比结果作为约束条件,重复根据所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型
进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果的步骤,直至得到所述第一对比结果对应的初始化神经网络模型为止,或者,直至迭代次数达到目标次数为止;
29.对所述目标网络层数和/或所述目标存储参数进行调整后,重复根据调整后的所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果的步骤。
30.在一个实施例中,所述性能数据包括推理时间,所述根据目标带宽利用率确定所述初始化神经网络模型的性能数据,包括:
31.确定目标带宽利用率;
32.根据所述目标带宽利用率、所述目标存储参数,确定所述初始化神经网络模型的推理时间,所述推理时间表征所述初始化神经网络模型完成目标场景任务的时间。
33.在一个实施例中,所述根据各所述初始化神经网络模型的所述性能数据,确定目标神经网络模型,包括:
34.在所述初始化神经网络模型的所述性能数据满足目标性能条件的情况下,将所述初始化神经网络模型作为目标神经网络模型;或者,
35.在各所述初始化神经网络模型的所述性能数据不满足所述目标性能条件的情况下,进入下一次迭代搜索过程,重复根据所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果的步骤,直至得到所述目标神经网络模型为止,或者,直至迭代次数达到目标次数为止;
36.对所述目标网络层数进行调整后,重复根据调整后的所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果的步骤。
37.第二方面,本技术还提供了一种神经网络搜索装置,所述装置包括:
38.网络层数确定模块,用于确定目标网络层数;
39.表达能力判断模块,用于在第i次迭代搜索过程中,根据所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果,其中i为大于0的整数;
40.存储信息确定模块,用于针对任一所述初始化神经网络模型,在所述判断结果表征所述初始化神经网络模型的表达能力满足预设条件的情况下,确定所述初始化神经网络模型的片内存储信息和片外存储信息;
41.性能数据确定模块,用于针对任一所述初始化神经网络模型,在所述初始化神经网络模型的所述片内存储信息和所述片外存储信息满足存储条件的情况下,根据目标带宽利用率确定所述初始化神经网络模型的性能数据;
42.目标网络确定模块,用于根据各所述初始化神经网络模型的所述性能数据,确定目标神经网络模型。
43.在一个实施例中,所述神经网络搜索装置还包括迭代装置,所述迭代装置用于在各所述初始化神经网络模型对应的所述判断结果皆表征所述初始化神经网络模型的表达能力未满足所述预设条件的情况下,进入下一次迭代搜索过程,重复根据所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型进行表达能力判断,得到
各所述初始化神经网络模型对应的判断结果的步骤,直至得到表征所述初始化神经网络模型的表达能力满足所述预设条件的判断结果对应的初始化神经网络模型为止,或者,直至迭代次数达到目标次数为止;对所述目标网络层数进行调整后,重复根据调整后的所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果的步骤。
44.在一个实施例中,所述存储信息确定模块,还用于根据所述初始化神经网络模型的原始网络图层,确定芯片计算图;建立所述原始网络图层与所述芯片计算图之间的层映射关系;获取所述芯片计算图中的每一层计算图的子片内存储信息,以及获取所述初始化神经网络模型的片外存储信息;根据所述层映射关系、各层所述计算图的所述子片内存储信息,确定所述初始化神经网络模型的片内存储信息。
45.在一个实施例中,所述性能数据确定模块,还用于获取目标存储参数,所述目标存储参数包括目标片外存储参数、目标片内存储参数;将所述初始化神经网络模型的所述片内存储信息和所述片外存储信息,与所述目标片外存储参数、所述目标片内存储参数进行对比,得到所述初始化神经网络模型的对比结果,所述对比结果包括第一对比结果或者第二对比结果,所述第一对比结果表征所述片内存储信息和所述片外存储信息满足所述存储条件,所述第二对比结果表征所述初始化神经网络模型的所述片内存储信息和所述片外存储信息未满足所述存储条件;在得到所述第一对比结果的情况下,根据目标带宽利用率确定所述初始化神经网络模型的性能数据。
46.在一个实施例中,性能数据确定模块,还用于在所述片内存储信息小于或等于所述目标片内存储参数,以及所述片外存储信息小于或等于所述目标片外存储参数的情况下,得到所述第一对比结果;或者,在所述片内存储信息大于所述目标片内存储参数,和/或所述片外存储信息大于所述目标片内存储参数的情况下,得到所述第二对比结果。
47.在一个实施例中,所述迭代装置还用于在各所述初始化神经网络模型对应的对比结果皆为所述第二对比结果的情况下,进入下一次迭代搜索过程,将各所述初始化神经网络模型对应的对比结果作为约束条件,重复根据所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果的步骤,直至得到所述第一对比结果对应的初始化神经网络模型为止,或者,直至迭代次数达到目标次数为止;对所述目标网络层数和/或所述目标存储参数进行调整后,重复根据调整后的所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果的步骤。
48.在一个实施例中,所述性能数据包括推理时间,所述性能数据确定模块,还用于确定目标带宽利用率;根据所述目标带宽利用率、所述目标存储参数,确定所述初始化神经网络模型的推理时间,所述推理时间表征所述初始化神经网络模型完成目标场景任务的时间。
49.在一个实施例中,所述目标网络确定模块,还用于在所述初始化神经网络模型的所述性能数据满足目标性能条件的情况下,将所述初始化神经网络模型作为目标神经网络模型;或者,在各所述初始化神经网络模型的所述性能数据不满足所述目标性能条件的情况下,进入下一次迭代搜索过程,重复根据所述目标网络层数确定多个初始化神经网络模
型,对各所述初始化神经网络模型进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果的步骤,直至得到所述目标神经网络模型为止,或者,直至迭代次数达到目标次数为止;对所述目标网络层数进行调整后,重复根据调整后的所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果的步骤。
50.第三方面,本技术还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各方法实施例中的步骤。
51.第四方面,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各方法实施例中的步骤。
52.第五方面,本技术还提供了一种计算机程序产品,所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
53.上述神经网络搜索方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,确定目标网络层数;在第i次迭代搜索过程中,根据所述目标网络层数确定多个初始化神经网络模型,对各所述初始化神经网络模型进行表达能力判断,得到各所述初始化神经网络模型对应的判断结果;针对任一所述初始化神经网络模型,在所述判断结果表征所述初始化神经网络模型的表达能力满足预设条件的情况下,确定所述初始化神经网络模型的片内存储信息和片外存储信息;针对任一所述初始化神经网络模型,在所述初始化神经网络模型的所述片内存储信息和所述片外存储信息满足存储条件的情况下,根据目标带宽利用率确定所述初始化神经网络模型的性能数据;根据各所述初始化神经网络模型的所述性能数据,确定目标神经网络模型。本技术提供的神经网络搜索方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,首先基于人为设定的目标网络层数进行搜索,提升了搜索速度,同时结合表达能力、片内存储信息和片外存储信息、以及目标带宽利用率对目标神经网络模型进行搜索,实现能够快速的获取到在部署芯片性能较好、精度较高的目标神经网络模型。
附图说明
54.图1为一个实施例中神经网络搜索方法的流程示意图;
55.图2为一个实施例中步骤106的流程示意图;
56.图3为一个实施例中步骤108的流程示意图;
57.图4为一个实施例中步骤108的流程示意图;
58.图5为一个实施例中神经网络搜索方法的流程示意图;
59.图6为一个实施例中神经网络搜索装置的结构框图;
60.图7为一个实施例中计算机设备的内部结构图。
具体实施方式
61.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不
用于限定本技术。
62.神经网络模型搜索目前成为一种模型设计的手段,目前主要分为两个方向:第一基于强化学习和演化算法的神经网络模型搜索,第二是基于梯度下降的神经网络模型搜索。基于梯度下降的神经网络模型搜索以差分的神经网络模型为例,其搜索不能够把芯片底层信息反馈到模型设计层面上来。
63.神经网络模型架构搜索由于每层算子不固定、规格参数也不固定、连接关系也不固定、网络层数不固定导致搜索空间维度特别大,造成网络架构搜索时间特别长,以最初谷歌提出的基于强化学习的nas-net为例,需要1000多个gpu(图形处理器,graphics processing unit)天,也即在一个gpu上需跑1000天;基于梯度下降的神经网络以darts(differentiable architecture search,差分神经结构搜索)为例,需要的搜索时间不长但是硬件信息不能通过梯度进行搜索,无法建立搜索模型与硬件数据模型之间的连接关系,也即darts搜索到的神经网络模型虽然模型小,实际上在硬件上跑的时候时间长。
64.目前关于模型表达力的研究成为一个重要方向,模型表达力为另一种搜索神经网络模型的方法。模型表达力通过输入符合高斯分布的数据根据输出作为判断模型表达力的性能,能够实现快速搜索最优网络结构特点,并且是在离散空间内搜索;但是缺少了要搜索网络和目标任务的约束,没有针对性的数据集进行搜索,搜索到的网络专用性差,且缺少硬件信息的约束。
65.由于不同大小的神经网络模型在编译部署在硬件的过程中可以比较精确的评估出占用的存储大小以及所占用的带宽利用率,同时神经网络模型的宽度对模型精度有比较大的影响,因此寻找一种能够权衡神经网络模型宽度及宽度带来的参数与精度的变化,以最大程度提高精度,降低参数量,和权衡硬件存储及带宽利用率,以使存储占用小且带宽利用率高的搜索方法具有较大实用价值。
66.基于此,本技术实施例提供了一种神经网络搜索方法,以解决上述问题,实现快速搜索神经网络结构,并得到在部署芯片性能比较好同时又具有比较高的精度的神经网络模型。
67.在一个实施例中,如图1所示,提供了一种神经网络搜索方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。神经网络搜索的过程可以在大型gpu服务器中完成。本实施例中,该方法包括以下步骤:
68.步骤102,确定目标网络层数。
69.其中,目标网络层数为欲搜索得到的目标神经网络模型的网络层数。初始的目标网络层数可以根据不同的应用场景人为设定,本技术实施例不对目标网络层数做具体限定。例如:应用场景可以为人脸识别、目标分类、目标检测、图像识别等。
70.步骤104,在第i次迭代搜索过程中,根据目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果,其中i为大于0的整数。
71.本技术实施例中,i为迭代次数,为从1开始的正整数。首先可以选定搜索空间,本技术实施例不对搜索空间做具体限定。初始化神经网络模型为根据搜索空间搜索出的网络层数符合目标网络层数的神经网络模型。示例性的,表达能力可以包括神经网络模型的精
度,以应用场景为分类任务为例,在一个公开的数据集cifar10上,通过数据集cifar10中的数据获取初始化神经网络模型的分类结果准确率,即为初始化神经网络模型的精度,判断结果可以用来表征初始化神经网络模型的精度是否满足预设的目标精度。
72.步骤106,针对任一初始化神经网络模型,在判断结果表征初始化神经网络模型的表达能力满足预设条件的情况下,确定初始化神经网络模型的片内存储信息和片外存储信息。
73.本技术实施例中,以表达能力为包括神经网络模型的精度为例,预设条件可以为预设的目标精度,若初始化神经网络模型的精度等于或大于预设的目标精度,即得到表征初始化神经网络模型的表达能力满足预设条件的判断结果。如果表达能力满足预设条件,则可以保证神经网络模型经过训练可以达到精度要求。片内存储信息可以包括初始化神经网络模型部署在芯片后,在芯片片内存储所占的存储量。片外存储信息可以包括初始化神经网络模型部署在芯片后,在芯片片外存储所占的存储量。可以对初始化神经网络模型进行量化编译,以计算出初始化神经网络模型的片内存储信息和片外存储信息。
74.步骤108,针对任一初始化神经网络模型,在初始化神经网络模型的片内存储信息和片外存储信息满足存储条件的情况下,根据目标带宽利用率确定初始化神经网络模型的性能数据。
75.本技术实施例中,存储条件可以为人为设置的目标存储参数,目标存储参数可以包括目标片外存储参数和目标片内存储参数,目标片外存储参数为片外存储的空间参数,也即目标神经网络模型在芯片片外存储中最多所能占用的存储量。目标片内存储参数为片内存储的空间参数,也即为目标神经网络模型在芯片片内存储中最多所能占用的存储量。目标带宽利用率为欲搜索得到的目标神经网络模型在部署在硬件的过程中最多可以占用的带宽,目标带宽利用率可以根据不同的应用场景人为设定。
76.在初始化神经网络模型的片内存储信息不超过目标片内存储参数,以及片外存储信息中不超过目标片外存储参数的情况下,可以在仿真器上设置目标带宽利用率等参数进行性能仿真,得到性能数据。
77.步骤110,根据各初始化神经网络模型的性能数据,确定目标神经网络模型。
78.本技术实施例中,若各初始化神经网络模型中至少有一个初始化神经网络模型的性能数据可以满足预设的性能条件,则将该初始化神经网络模型作为目标神经网络模型。性能数据可以为芯片推理时间,也即神经网络模型在芯片上运行以完成场景任务所需的时间,预设的性能条件可以为人为设定的目标芯片推理时间。若各初始化神经网络模型的性能数据都不满足预设的性能条件,则将性能数据反馈给模型搜索系统进行重新搜索。模型搜索系统为承载本技术神经网络搜索方法的算法。
79.本技术实施例提供的神经网络搜索方法,确定目标网络层数;在第i次迭代搜索过程中,根据目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果;针对任一初始化神经网络模型,在判断结果表征初始化神经网络模型的表达能力满足预设条件的情况下,确定初始化神经网络模型的片内存储信息和片外存储信息;针对任一初始化神经网络模型,在初始化神经网络模型的片内存储信息和片外存储信息满足存储条件的情况下,根据目标带宽利用率确定初始化神经网络模型的性能数据;根据各初始化神经网络模型的性能数据,确定目标神
经网络模型。本技术提供的神经网络搜索方法,首先基于人为设定的目标网络层数进行搜索,提升了搜索速度,同时结合表达能力、片内存储信息和片外存储信息、以及目标带宽利用率对目标神经网络模型进行搜索,实现能够快速的获取到在部署芯片性能较好、精度较高的目标神经网络模型。
80.在一个实施例中,神经网络搜索方法还包括:
81.在各初始化神经网络模型对应的判断结果皆表征初始化神经网络模型的表达能力未满足预设条件的情况下,进入下一次迭代搜索过程,重复根据目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤,直至得到表征初始化神经网络模型的表达能力满足预设条件的判断结果对应的初始化神经网络模型为止,或者,直至迭代次数达到目标次数为止;
82.对目标网络层数进行调整后,重复根据调整后的目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤。
83.其中,目标次数为目标搜索迭代次数,可以根据实际需求设定。
84.示例性的,目标网络层数为4层,目标次数为10次。在第1次迭代搜索过程中,根据目标网络层数确定的多个初始化神经网络模型搜索的判断结果皆表征表达能力未满足预设条件,则进入第2次迭代搜索过程,再次根据目标网络层数确定多个初始化神经网络模型,并进行表达能力判断,若第2次得到的多个初始化神经网络模型搜索的判断结果依旧皆表征表达能力未满足预设条件,则进入第3次迭代搜索过程,重复上述步骤直至得到表达能力满足预设条件的初始化神经网络模型。或者当第10次迭代搜索完成,仍未能得到表达能力满足预设条件的初始化神经网络模型,可以增大目标网络层数至5层并重复根据调整后的目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤。
85.本公开实施例,可以在有限次数内根据目标网络层数搜索出表达能力满足预设条件的初始化神经网络模型,加快了搜索速度,且将目标网络层数和表达能力同时作为约束条件,提高了最终得到的目标神经网络模型的精度和性能。
86.在一个实施例中,如图2所示,在步骤106中,确定初始化神经网络模型的片内存储信息和片外存储信息,可以包括:
87.步骤202,根据初始化神经网络模型的原始网络图层,确定芯片计算图。
88.其中,原始网络图层可以为对初始化神经网络模型进行量化后得到,原始网络图层可以包括各层网络结构,网络结构的层数为目标网络层数。对原始网络图层中的各层网络结构进行标记编号。在编译器中对初始化神经网络模型的原始网络图层进行算子融合和计算图优化,可以得到芯片计算图,此处讲述的算子融合和计算图优化技术主要针对不同计算网络之间的高效融合,提升算法执行效率;计算图优化是针对不同图像进行调优计算的过程,也是针对不同网络计算进行的。芯片计算图为将初始化神经网络模型的原始网络图层,运算编译成符合芯片语言指令的运算过程后,抽象得到的计算图。芯片计算图可以包括多个计算图,每一层计算图可以包括一个运算过程,其中,每层计算图的运算过程与原始网络图层中的每层网络结构有一一对应关系。
89.示例性的,可以先对表达能力满足预设条件的初始化神经网络模型按照高斯分布
的随机数据进行初始化网络的权重参数,然后按照随机数输入量化,得到量化后的原始网络图层。量化可以进行8bit、16bit等量化也可以进行混合量化。算子融合可以通过卷积和relu函数(rectified linear unit,是一种人工神经网络中常用的激活函数)完成,可以将算子融合成为一层计算图。
90.步骤204,建立原始网络图层与芯片计算图之间的层映射关系。
91.其中,芯片计算图中每层计算图的运算过程与原始网络图层中的每层网络结构有一一对应关系,在对初始化神经网络模型的原始网络图层进行算子融合和计算图优化的过程中,可以根据原始网络图层中各层网络结构的编号,对芯片计算图中各层计算图进行对照编号。芯片计算图中的各层计算图的编号与原始网络图层中的各层网络结构的编号的对应关系即为层映射关系。示例性的,优化后的芯片计算图和原始量化后的原始网络图层进行标记编号对比,建立原始网络图层与芯片计算图之间的层映射关系。
92.步骤206,获取芯片计算图中的每一层计算图的子片内存储信息,以及获取初始化神经网络模型的片外存储信息。
93.其中,编译器对芯片计算图中的每一层计算图进行编译得到每一层计算图对应的指令集,对各指令集进行内存分配,以使每层计算图对应的指令集可以在分配的存储空间模拟运算,计算图的指令集在运算过程中被分配的内存即为子片内存储信息。初始化神经网络模型的片外存储信息可以直接获取初始化神经网络模型部署在芯片上所占用的片外存储量。示例性的,在分配存储空间以编译芯片计算图的过程中,可以校验记录每层计算图的子片内存储信息,子片内存储信息包括在芯片上sram(静态随机存取存储器,static random-access memory)的所占存储大小。
94.步骤208,根据层映射关系、各层计算图的子片内存储信息,确定初始化神经网络模型的片内存储信息。
95.其中,在确定各层计算图的子片内存储信息后,可以根据层映射关系得到对应的原始网络图层中每层网络结构的子片内存储信息。初始化神经网络模型的片内存储信息可以包括原始网络图层中每层网络结构的子片内存储信息,也可以包括各层网络结构的子片内存储信息之和。
96.本公开实施例中,确定初始化神经网络模型的片外存储信息,以及通过量化编译确定初始化神经网络模型的片内存储信息,可以将神经网络模型的宽度指标要求加入神经网络搜索过程中,使得目标神经网络模型可以充分利用芯片的片内外存储。
97.在一个实施例中,如图3所示,在步骤108中,在初始化神经网络模型的片内存储信息和片外存储信息满足存储条件的情况下,根据目标带宽利用率确定初始化神经网络模型的性能数据,可以包括:
98.步骤302,获取目标存储参数,目标存储参数包括目标片外存储参数、目标片内存储参数。
99.其中,目标存储参数可以包括目标片外存储参数和目标片内存储参数,目标片外存储参数为片外存储的空间参数,也即目标神经网络模型在芯片片外存储中最多所能占用的存储量。目标片内存储参数为片内存储的空间参数,也即为目标神经网络模型在芯片片内存储中最多所能占用的存储量。目标存储参数可以根据实际需求设定。
100.步骤304,将初始化神经网络模型的片内存储信息和片外存储信息,与目标片外存
储参数、所述目标片内存储参数进行对比,得到初始化神经网络模型的对比结果,对比结果包括第一对比结果或者第二对比结果,第一对比结果表征片内存储信息和片外存储信息满足存储条件,第二对比结果表征初始化神经网络模型的片内存储信息和片外存储信息未满足存储条件。
101.其中,可以将初始化神经网络模型的片外存储信息与目标片外存储参数进行对比,得到的对比结果中可以包括片外存储的冗余或溢出信息。可以将初始化神经网络模型的片内存储信息中的每层网络结构的子片内存储信息,皆与目标片内存储参数进行对比;或者,可以将初始化神经网络模型的片内存储信息中各层网络结构的子片内存储信息之和,与目标片内存储参数进行对比,得到的对比结果中可以包括片内存储的冗余或溢出信息。存储条件为初始化神经网络模型的片外存储信息小于或等于目标片外存储参数,以及片内存储信息小于或等于目标片内存储参数。
102.步骤306,在得到第一对比结果的情况下,根据目标带宽利用率确定初始化神经网络模型的性能数据。
103.其中,目标带宽利用率可以根据不同的应用场景设定。在得到第一对比结果的情况下,也即初始化神经网络模型满足存储条件,可以在仿真器中设置目标带宽利用率,以及设置目标存储参数,对初始化神经网络模型进行性能仿真,得到性能数据。性能数据可以包括芯片推理时间,也即初始化神经网络模型在芯片上完成应用场景,例如分类任务的时间。
104.本公开实施例,将神经网络模型的宽度(存储)指标要求加入神经网络搜索过程中,使得在搜索过程中,只有在满足表达力要求、片内存储、片外存储等指标要求的情况下,才进行性能数据的计算,加快了神经网络模型的搜索速度,使得搜索到的目标神经网络模型同时兼顾性能和精度。
105.在一个实施例中,在步骤304中,将初始化神经网络模型的片内存储信息和片外存储信息,与目标片外存储参数、目标片内存储参数进行对比,得到对比结果,可以包括:
106.在片内存储信息小于或等于目标片内存储参数,以及片外存储信息小于或等于目标片外存储参数的情况下,得到第一对比结果;或者,在片内存储信息大于目标片内存储参数,或片外存储信息大于目标片内存储参数的情况下,得到第二对比结果。
107.其中,可以将初始化神经网络模型的片外存储信息与目标片外存储参数进行对比。可以将初始化神经网络模型的片内存储信息中的每层网络结构的子片内存储信息,皆与目标片内存储参数进行对比;或者,可以将初始化神经网络模型的片内存储信息中各层网络结构的子片内存储信息之和,与目标片内存储参数进行对比。只要片内存储信息和片外存储信息其中之一超过对应的目标存储信息,即得到第二对比结果,终止进行下一步骤的性能推理,把存储信息反馈给模型搜索系统算法,然后重新搜索。
108.本公开实施例,将神经网络模型的宽度(存储)指标要求加入神经网络搜索过程中,使得在搜索过程中,只有在满足表达力要求、片内存储、片外存储等指标要求的情况下,才进行性能数据的计算,加快了神经网络模型的搜索速度,使得搜索到的目标神经网络模型同时兼顾性能和精度。
109.在一个实施例中,神经网络搜索方法还可以包括:
110.在各初始化神经网络模型对应的对比结果皆为第二对比结果的情况下,进入下一次迭代搜索过程,将各初始化神经网络模型对应的对比结果作为约束条件,重复根据目标
网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤,直至得到第一对比结果对应的初始化神经网络模型为止,或者,直至迭代次数达到目标次数为止;
111.对目标网络层数和/或目标存储参数进行调整后,重复根据调整后的目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤。
112.示例性的,目标网络层数为4层,目标次数为10次。在第1次迭代搜索过程中,表达能力满足预设条件的多个初始化神经网络模型的对比结果皆为第二对比结果,则进入第2次迭代搜索过程,将各第二对比结果作为约束条件,再次根据目标网络层数确定多个初始化神经网络模型。例如:第二对比结果表征第4层的片内存储信息超过目标存储参数,第2次迭代搜索时可以限制第5层的存储参数量,如果总体片外存储信息超过目标存储参数,第2次迭代搜索时可以按照每层存储的大小排序进行逐渐限制参数量大小进行重新搜索。对重新搜索得到的多个初始化神经网络模型进行表达能力判断,确定表达能力满足预设条件的多个初始化神经网络模型的对比结果,若第2次得到的表达能力满足预设条件的多个初始化神经网络模型搜索,其对比结果依旧皆为第二对比结果,则进入第3次迭代搜索过程,重复上述步骤直至得到第一对比结果对应的初始化神经网络模型为止。或者当第10次迭代搜索完成,仍未能得到第一对比结果对应的初始化神经网络模型,可以增大目标网络层数至5层或者增大目标存储参数,并重复根据调整后的目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤。
113.本公开实施例,可以在有限次数内根据目标网络层数搜索出表达能力、片内片外存储都满足条件的初始化神经网络模型,加快了搜索速度,提高了最终得到的目标神经网络模型的精度和性能。
114.在一个实施例中,性能数据包括推理时间。如图4所示,在步骤108中,根据目标带宽利用率确定初始化神经网络模型的性能数据,可以包括:
115.步骤402,确定目标带宽利用率。
116.其中,目标带宽利用率为欲搜索得到的目标神经网络模型在部署在硬件的过程中最多可以占用的带宽,目标带宽利用率可以根据不同的应用场景设定。
117.步骤404,根据目标带宽利用率、目标存储参数,确定初始化神经网络模型的推理时间,推理时间表征初始化神经网络模型完成目标场景任务的时间。
118.其中,目标场景任务为应用场景中神经网络模型所需完成的运算目的,例如人脸识别、分类等。
119.示例性的,可以在仿真器中把带宽的利用率按照应用场景进行设置百分比,比如目标带宽利用率为40%。对存储达标的初始化神经网络模型进行仿真推理性能,得到推理时间。在分类应用场景下,初始化神经网络模型完成分类的时间为50s,则该初始化神经网络模型对应的推理时间为50s。
120.本公开实施例,将神经网络模型的性能指标要求加入神经网络搜索过程中,使得在搜索过程中,只有表达力要求、片内存储、片外存储、性能等指标要求的情况下,才得到目标神经网络模型,加快了神经网络模型的搜索速度,使得搜索到的目标神经网络模型同时
兼顾性能和精度。
121.在一个实施例中,在步骤110中,根据各初始化神经网络模型的性能数据,确定目标神经网络模型,可以包括:
122.在初始化神经网络模型的性能数据满足目标性能条件的情况下,将初始化神经网络模型作为目标神经网络模型;或者,在各初始化神经网络模型的性能数据不满足目标性能条件的情况下,进入下一次迭代搜索过程,重复根据目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤,直至得到目标神经网络模型为止,或者,直至迭代次数达到目标次数为止;
123.对目标网络层数进行调整后,重复根据调整后的目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤。
124.示例性的,目标性能条件可以为预设的目标推理时间,例如10s。初始化神经网络模型的推理时间小于或等于目标推理时间,即为满足目标性能条件。若在仿真器中得到的初始化神经网络模型的推理时间为8s,小于目标推理时间10s,则初始化神经网络模型同时满足表达能力、存储、性能的要求,作为目标神经网络模型。在初始化神经网络模型的性能数据不满足目标性能条件的情况下,可以重新进行迭代搜索。当搜索到目标次数(强化学习或者演化算法已经收敛最好结果时),仍旧收敛不到理想的神经网络模型,此时可以增大网络层数重新进行以上步骤的搜索。
125.本公开实施例,将神经网络模型的性能指标要求加入神经网络搜索过程中,使得在搜索过程中,只有在满足表达力要求、片内存储、片外存储、性能等指标要求的情况下,才得到目标神经网络模型,加快了神经网络模型的搜索速度,使得搜索到的目标神经网络模型同时兼顾性能和精度。
126.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
127.为了便于本技术实施例的进一步理解,参见图5,本技术在此提供一种最完整实施例。本技术实施例提供的神经网络搜索方法,充分利用部署芯片的存储和带宽来指导神经网络搜索,加快神经网络模型的搜索的收敛速度(搜索神经网络的速度),同时保证了芯片推理时间(神经网络在芯片上的推理时间)和模型精度。具体方法如下:第一步,首先根据不同的应用场景人为设置不同的带宽利用率和片外的空间参数以及片内的空间参数,选定网络的搜索空间和目标数据集,人为设置初始化网络搜索层数,例如20层。图像和语音的数据流会占用带宽,某些场景神经网络模型计算的带宽利用率是70-80%,某些场景带宽利用率是20-30%。然后把初始化搜索的网络结构进行表达能力判断是否达标,如果达到一定的表达能力的标准就说明神经网络模型经过训练可以达到精度要求,接着进行网络层标记和编
译优化;如果不满足就反馈给搜索系统增大网络结构参数(宽度、层数等)重新进行搜索。
128.第二步,根据第一步获取到的满足要求的网络结构按照高斯分布的随机数据进行初始化网络的权重参数,然后按照随机数输入量化,量化可以进行8bit、16bit等量化也可以进行混合量化,得到原始量化的模型层。进行编译器的优化编译,优化主要包括算子融合(以卷积+relu为例,可以融合成为一层)、计算图优化,同时优化过程中和原始量化的模型层标记对比,优化后计算图层仍然可以标记和原始模型的层建立对应关系。经过编译器的算子融合和计算图优化后的计算图,与原始的网络图建立层映射关系。然后进行内存分配指令,对每一层计算图分配内存,生成指令集,完成编译,同时根据预先设置的片内的空间参数,统计目前的计算图每层的片内存储冗余,如果片内存储放不下,就反馈确定当前层存储欠缺量,然后把所有的层片内存储信息(是否冗余和欠缺)通过层映射关系计算原始网络图每层的参数存储信息,编译完成后根据预先设置的片外的空间参数统计总的片外存储判断是否达到合理存储大小;无论是片内存储还是片外存储其中之一存在数据放不下的情况都终止进行下步性能推理,把存储信息反馈给模型搜索系统,然后重新搜索,直到满足表达力要求、片内存储、片外存储指标要求,然后进行下步;示例性的,分配空间编译计算图,校验记录每层的存储信息,此储存信息包括sram还剩多少冗余及存储溢出多少,最后根据编译出文件大小反馈是否超出片外存储的合理范围,如果片内和片外存储有其中一个超出了存储范围就反馈网络搜索系统进行重新搜素,并且根据每层的存储信息进行重新调整,比如当前搜索结果第5层的参数存储超标了,那就可以在下次搜索时可以限制第5层的存储参数量,如果总体片外存储超标了那就可以按照每层存储的大小排序进行逐渐限制参数量大小进行重新搜索。
129.第三步模型性能推理,仿真器会根据上层应用场景设置读取并设置带宽的利用率,然后设置片外的空间参数以及片内的空间参数等相关参数,进行性能仿真,最后把性能数据(推理时间)反馈给模型搜索系统进行重新搜索。第四步,由于网络层数开始时人为初始化设定的,根据第一步到第三步设置一定的搜索迭代次数,因此当搜索到一定的搜索迭代次数(强化学习或者演化算法已经收敛最好结果时)仍旧收敛不到理想的网络结构模型,此时可以增大网络层数重新进行以上步骤的搜索,最终搜索到充分利用片内外存储并且可以满足精度要求且推理性能最优的神经网络模型。
130.本技术实施例提供的神经网络搜索方法,结合了部署硬件的存储大小以及带宽大小对模型搜索的影响,为模型的搜索设计提供了比较好的方向,解决了如何使用硬件信息和如何实现快速搜索网络结构的问题,提出了基于硬件存储及带宽的利用率指导网络搜索的神经网络搜索方法,该方法首先根据目标网络的层数和搜索空间搜索出精度达标的网络,然后进行量化编译仿真推理,最后根据硬件存储及带宽信息反馈模型推理的时间以及对应的原始模型每层是否可以加宽或者替换成参数量更加大的操作,以此来指导模型搜索。本技术实施例提供的神经网络搜索方法,为了加快搜索速度首先基于人为设定的网络层数进行搜索,然后进行表达力的判断,量化编译,计算出每层的片内存储数据大小信息和总体片外的存储信息,最终通过仿真器结合带宽大小把搜索到的网络模型性能反馈给模型搜索系统,实现能够快速的获取到在部署芯片性能比较好的网络同时又具有比较高的精度,对于能够针对不同的硬件架构设计不同的高效执行的网络结构充分利用底层芯片的计算存储资源和带宽具有比较大的价值与意义。
131.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的神经网络搜索装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个神经网络搜索装置实施例中的具体限定可以参见上文中对于神经网络搜索方法的限定,在此不再赘述。
132.在一个实施例中,参见图6,提供了一种神经网络搜索装置600。神经网络搜索装置600包括:
133.网络层数确定模块602,用于确定目标网络层数;
134.表达能力判断模块604,用于在第i次迭代搜索过程中,根据目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果,其中i为大于0的整数;
135.存储信息确定模块606,用于针对任一初始化神经网络模型,在判断结果表征初始化神经网络模型的表达能力满足预设条件的情况下,确定初始化神经网络模型的片内存储信息和片外存储信息;
136.性能数据确定模块608,用于针对任一初始化神经网络模型,在初始化神经网络模型的片内存储信息和片外存储信息满足存储条件的情况下,根据目标带宽利用率确定初始化神经网络模型的性能数据;
137.目标网络确定模块610,用于根据各初始化神经网络模型的性能数据,确定目标神经网络模型。
138.本技术实施例提供的神经网络搜索装置,确定目标网络层数;在第i次迭代搜索过程中,根据目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果;针对任一初始化神经网络模型,在判断结果表征初始化神经网络模型的表达能力满足预设条件的情况下,确定初始化神经网络模型的片内存储信息和片外存储信息;针对任一初始化神经网络模型,在初始化神经网络模型的片内存储信息和片外存储信息满足存储条件的情况下,根据目标带宽利用率确定初始化神经网络模型的性能数据;根据各初始化神经网络模型的性能数据,确定目标神经网络模型。本技术提供的神经网络搜索装置,首先基于人为设定的目标网络层数进行搜索,提升了搜索速度,同时结合表达能力、片内存储信息和片外存储信息、以及目标带宽利用率对目标神经网络模型进行搜索,实现能够快速的获取到在部署芯片性能较好、精度较高的目标神经网络模型。
139.在一个实施例中,神经网络搜索装置600还包括迭代装置。迭代装置用于在各初始化神经网络模型对应的所述判断结果皆表征初始化神经网络模型的表达能力未满足预设条件的情况下,进入下一次迭代搜索过程,重复根据目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤,直至得到表征初始化神经网络模型的表达能力满足预设条件的判断结果对应的初始化神经网络模型为止,或者,直至迭代次数达到目标次数为止;对目标网络层数进行调整后,重复根据调整后的目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤。
140.在一个实施例中,存储信息确定模块606还用于根据初始化神经网络模型的原始网络图层,确定芯片计算图;建立原始网络图层与芯片计算图之间的层映射关系;获取芯片
计算图中的每一层计算图的子片内存储信息,以及获取初始化神经网络模型的片外存储信息;根据层映射关系、各层计算图的子片内存储信息,确定初始化神经网络模型的片内存储信息。
141.在一个实施例中,性能数据确定模块608还用于获取目标存储参数,目标存储参数包括目标片外存储参数、目标片内存储参数;将初始化神经网络模型的片内存储信息和片外存储信息,与目标片外存储参数、目标片内存储参数进行对比,得到初始化神经网络模型的对比结果,对比结果包括第一对比结果或者第二对比结果,第一对比结果表征片内存储信息和片外存储信息满足存储条件,第二对比结果表征初始化神经网络模型的片内存储信息和片外存储信息未满足存储条件;在得到第一对比结果的情况下,根据目标带宽利用率确定初始化神经网络模型的性能数据。
142.在一个实施例中,性能数据确定模块608还用于在片内存储信息小于或等于目标片内存储参数,以及片外存储信息小于或等于目标片外存储参数的情况下,得到第一对比结果;或者,在片内存储信息大于目标片内存储参数,和/或片外存储信息大于目标片内存储参数的情况下,得到第二对比结果。
143.在一个实施例中,迭代装置还用于在各初始化神经网络模型对应的对比结果皆为第二对比结果的情况下,进入下一次迭代搜索过程,将各初始化神经网络模型对应的对比结果作为约束条件,重复根据目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤,直至得到第一对比结果对应的初始化神经网络模型为止,或者,直至迭代次数达到目标次数为止;对目标网络层数和/或目标存储参数进行调整后,重复根据调整后的目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤。
144.在一个实施例中,性能数据包括推理时间。性能数据确定模块608还用于确定目标带宽利用率;根据目标带宽利用率、目标存储参数,确定初始化神经网络模型的推理时间,推理时间表征初始化神经网络模型完成目标场景任务的时间。
145.在一个实施例中,所述目标网络确定模块610还用于在初始化神经网络模型的性能数据满足目标性能条件的情况下,将初始化神经网络模型作为目标神经网络模型;或者,在各初始化神经网络模型的性能数据不满足目标性能条件的情况下,进入下一次迭代搜索过程,重复根据目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤,直至得到目标神经网络模型为止,或者,直至迭代次数达到目标次数为止;对目标网络层数进行调整后,重复根据调整后的目标网络层数确定多个初始化神经网络模型,对各初始化神经网络模型进行表达能力判断,得到各初始化神经网络模型对应的判断结果的步骤。
146.上述神经网络搜索装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
147.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易
失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种神经网络搜索方法。
148.本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
149.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
150.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
151.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
152.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
153.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
154.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1