CN117077726A - 一种生成存内计算神经网络模型的方法、装置及介质 - Google Patents
一种生成存内计算神经网络模型的方法、装置及介质 Download PDFInfo
- Publication number
- CN117077726A CN117077726A CN202311344094.XA CN202311344094A CN117077726A CN 117077726 A CN117077726 A CN 117077726A CN 202311344094 A CN202311344094 A CN 202311344094A CN 117077726 A CN117077726 A CN 117077726A
- Authority
- CN
- China
- Prior art keywords
- parameters
- neural network
- network model
- determining
- architecture
- 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.)
- Granted
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 157
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000012549 training Methods 0.000 claims abstract description 78
- 230000005540 biological transmission Effects 0.000 claims abstract description 17
- 238000004088 simulation Methods 0.000 claims description 29
- 238000005457 optimization Methods 0.000 claims description 26
- 238000011084 recovery Methods 0.000 claims description 25
- 238000013139 quantization Methods 0.000 claims description 20
- 238000004364 calculation method Methods 0.000 claims description 19
- 230000006870 function Effects 0.000 claims description 18
- 238000003860 storage Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 16
- 230000002787 reinforcement Effects 0.000 claims description 15
- 238000005070 sampling Methods 0.000 claims description 7
- 238000012614 Monte-Carlo sampling Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 10
- 230000006872 improvement Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000012804 iterative process Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- 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
- G06N3/09—Supervised learning
-
- 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
- G06N3/092—Reinforcement learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种生成存内计算神经网络模型的方法,首先根据待构建的神经网络模型的目标任务,根据历史执行所述目标任务的任务数据作为训练样本,以及将目标任务的执行结果作为标注,之后通过对量化可微超网络的模型结构进行初始化,确定模型各节点之间数据传递顺序的有向无环图,确定架构参数以及权重参数,依该有向无环图的顺序,通过训练样本对权重参数进行调整,然后通过调整后的权重参数配置的模型,调整架构参数,得到存内运行的神经网络模型。通过权值继承,实现了可交替优化的两种参数,分别通过有监督训练和启发式学习进行调整,使得可以更为高效的学习深度神经网络架构。
Description
技术领域
本申请涉及存内计算领域,尤其涉及一种生成存内计算神经网络模型的方法、装置及介质。
背景技术
目前,随着半导体技术的不断发展,数据存储逐渐成为数据处理进一步提升的瓶颈,即数据访问效率和数据存储密度无法兼容的问题。这就导致处理单元与存储器间的数据吞吐量的限制,导致处理单元中单线程性能提高更为困难,且能耗大增。也就是常说的“内存墙”和“功耗墙”问题。
尤其是随着现有深度神经网络的发展,由于越丰富的训练样本能够提供越好的训练效果,并且为了更好的效果模型设计越发复杂使得参数越来越多,因此在机器学习领域,对大量数据的调用的需求越来越强烈。
现有技术中,为了解决这一问题,提出了存内计算(或称为存算一体化)架构,将计算过程在存储器本地进行,以减少处理单元和存储器之间频繁的数据调用,被认为是基于低功耗或者网络边缘设备部署大规模神经网络模型的解决方案。
目前存内计算方案中的模拟存内计算方法,由于具有更高的能量效率,而被更广泛的应用于低功耗或者网络边缘设备。模拟存内计算方法通过采用ADC/DAC、控制器、交叉阵列等模拟模块,实现存储器的算法运算。但是,仅基于专家经验,难以设计高效的深度神经网络架构。
基于此,本说明书提供一种生成存内计算神经网络模型的方法。
发明内容
本申请提供一种生成存内计算神经网络模型的方法、装置、存储介质及电子设备,以部分的解决现有技术存在的上述问题。
本申请采用下述技术方案:
本申请提供了一种生成存内计算神经网络模型的方法,包括:
根据待生成模型结构的神经网络模型的目标任务,获取历史执行所述目标任务的任务数据作为训练样本,确定历史执行所述目标任务的执行结果,作为训练样本的标注;
初始化所述神经网络模型的各节点之间数据传递顺序的有向无环图,确定所述神经网络模型的架构参数以及所述神经网络模型的权重参数,其中,所述模型结构为可微超网络结构,所述架构参数与所述权重参数一一对应;
按照所述有向无环图的顺序,根据所述架构参数,依次预测所述神经网络模型的权重参数;
通过设置为所述权重参数的所述神经网络模型,确定所述训练样本的预测结果,并根据所述预测结果与所述标注的差异确定损失,以损失最小为目标调整所述权重参数;
根据调整后的权重参数,重新确定所述架构参数,并通过仿真确定存储器运行所述神经网络模型的运行状态,以通过强化学习调整所述架构参数;
判断所述架构参数是否满足结束条件;
若是,则根据所述架构参数,确定用于所述存储器运行的所述神经网络模型,并响应于所述目标任务的任务请求,通过所述存储器进行对应所述神经网络模型的模拟计算,确定所述任务请求的预测结果,以根据所述预测结果执行所述任务请求;
若否,则根据所述架构参数,重新确定权重参数,以根据所述训练样本以及所述标注,继续调整权重参数和所述架构参数,直至所述架构参数满足结束条件为止。
可选地,按照所述有向无环图的顺序,根据所述架构参数,依次预测所述神经网络模型的权重参数,具体包括:
按照所述有向无环图,针对所述神经网络模型的每一层节点,根据该层各节点的架构参数,确定该层各节点的权重参数。
可选地,根据该层各节点的架构参数,确定该层各节点的权重参数,具体包括:
根据预设的该层各节点分别对应的架构参数的取值范围,确定该层节点的权重参数的取值范围;
根据该层节点的权重参数的取值范围,确定该层各节点归一化的权重参数。
可选地,通过设置为所述权重参数的所述神经网络模型,确定所述训练样本的预测结果,并根据所述预测结果与所述标注的差异确定损失,以损失最小为目标调整所述权重参数,具体包括:
根据预设的量化精度,对所述归一化的权重参数进行量化取整,确定所述归一化的权重参数的恢复值;
将所述训练样本作为输入,输入按照所述恢复值设置各层节点的神经网络模型,得到输出的所述训练样本的预测结果;
根据所述预测结果与所述标注的差异,确定损失函数;
以所述损失函数最小为优化目标,调整所述权重参数。
可选地,根据所述架构参数,重新确定权重参数,具体包括:
基于所述架构参数与所述权重参数一一对应的关系,根据所述归一化的权重参数的恢复值,重新确定权重参数。
可选地,根据预设的量化精度,对所述归一化的权重参数进行量化取整,确定所述归一化的权重参数的恢复值之前,所述方法还包括:
对部署所述神经网络模型的存储器进行非理想特性建模,确定非理想特性对应的非理想特性;
根据所述非理想特性,对所述归一化的权重参数进行调整,确定用于量化取整的权重参数。
可选地,将所述训练样本作为输入,输入按照所述恢复值设置各层节点的神经网络模型,得到输出的所述训练样本的预测结果之前,所述方法还包括:
基于所述架构参数与所述权重参数一一对应的关系,根据所述架构参数,对各层节点对应的恢复值进行加权;
根据加权后的恢复值,确定用于输入训练样本的神经网络模型。
可选地,通过仿真确定存储器运行所述神经网络模型的运行状态,以通过强化学习调整所述架构参数,具体包括:
根据重新确定所述架构参数,确定所述神经网络模型对应的候选模型;
对部署所述神经网络模型的存储器进行非理想特性建模,确定非理想特性对应的非理想特性;
根据所述非理想特性,调整所述候选模型;
通过仿真确定存储器运行调整后的所述候选模型的运行状态,以通过强化学习调整所述架构参数。
可选地,通过强化学习调整所述架构参数,具体包括:
确定所述运行状态与预设的优化目标之间的差异;
根据所述差异,确定所述架构参数的梯度;
根据所述梯度,调整所述神经网络模型的架构参数。
可选地,根据所述差异,确定所述架构参数的梯度,具体包括:
根据所述差异,采用蒙特卡洛采样对调整前的架构参数进行采样;
根据各采样结果,拟合所述调整前的架构参数的梯度。
本申请提供了一种生成存内计算神经网络模型的装置,包括:
样本构建模块,根据待生成模型结构的神经网络模型的目标任务,获取历史执行所述目标任务的任务数据作为训练样本,确定历史执行所述目标任务的执行结果,作为训练样本的标注;
初始化模块,初始化所述神经网络模型的各节点之间数据传递顺序的有向无环图,确定所述神经网络模型的架构参数以及所述神经网络模型的权重参数,其中,所述模型结构为可微超网络结构,所述架构参数与所述权重参数一一对应;
权重预测模块,按照所述有向无环图的顺序,根据所述架构参数,依次预测所述神经网络模型的权重参数;
权重调整模块,通过设置为所述权重参数的所述神经网络模型,确定所述训练样本的预测结果,并根据所述预测结果与所述标注的差异确定损失,以损失最小为目标调整所述权重参数;在所述架构预测模块,判断所述架构参数不满足结束条件时,所述权重调整模块,根据所述架构参数,重新确定权重参数,以根据所述训练样本以及所述标注,继续调整权重参数和所述架构参数,直至所述架构参数满足结束条件为止;
所述架构预测模块,根据调整后的权重参数,重新确定所述架构参数,并通过仿真确定存储器运行所述神经网络模型的运行状态,以通过强化学习调整所述架构参数;判断所述架构参数是否满足结束条件;若是,则根据所述架构参数,确定用于所述存储器运行的所述神经网络模型,并响应于所述目标任务的任务请求,通过所述存储器进行对应所述神经网络模型的模拟计算,确定所述任务请求的预测结果,以根据所述预测结果执行所述任务请求。
本申请提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述生成存内计算神经网络模型的方法。
本申请提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述生成存内计算神经网络模型的方法。
本申请采用的上述至少一个技术方案能够达到以下有益效果:
首先根据待构建的神经网络模型的目标任务,根据历史执行所述目标任务的任务数据作为训练样本,以及将目标任务的执行结果作为标注,之后通过初始化模型各节点之间数据传递顺序的有向无环图,确定架构参数以及权重参数,依该有向无环图的顺序,基于架构参数预测对应的权重参数,并根据配置了预测的权重参数的模型,通过训练样本对权重参数进行调整,然后通过调整后的权重参数,重新确定所述架构参数,直至架构参数满足结束条件,确定在存储器运行的神经网络模型,并通过存储器运行该神经网络模型执行目标任务。
通过设置可相互传参的权重参数和架构参数,并分别通过仿真场景的有监督训练和启发式学习进行调整,使得可以更为高效的学习深度神经网络架构。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种生成存内计算神经网络模型的方法的流程示意图;
图2a为本说明书提供的一种模型结构的有向无环图的示意图;
图2b为本申请实施例提供的两种参数循环优化的示意图;
图3为本申请实施例提供的权重参数调整过程的示意图;
图4为本申请实施例提供的架构参数调整过程的示意图;
图5为本申请实施例提供的一种生成存内计算神经网络模型的装置结构的示意图;
图6为本申请实施例提供的一种对应于图1的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请中提供的一种生成存内计算神经网络模型的方法的流程示意图,包括以下步骤:
S100:根据待生成模型结构的神经网络模型的目标任务,获取历史执行所述目标任务的任务数据作为训练样本,确定历史执行所述目标任务的执行结果,作为训练样本的标注。
在本说明书一个或多个实施例中,可由服务器执行生成存内计算神经网络模的过程。由于待生成的神经网络模型,最终是用于部署在存储器中,执行任务或者为执行任务提供支持的,因此生成的该神经网络模型的模型结构与神经网络模型要执行的业务相关。于是,该服务器可以基于该神经网络模型要执行的业务,确定训练样本,以在后续通过有监督训练生成神经网络模型时使用。
具体的,该服务器可先确定待生成模型结构的神经网络模型的应用业务,作为目标业务。并获取历史执行该目标业务的任务数据,作为训练样本。并确定历史执行所述目标任务的执行结果,作为训练样本的标注。当然,训练样本与执行结果是对应同一个历史业务的。
例如,假设该神经网络模型用于图像分类、或者人脸识别,则该服务器可确定图像分类业务或者人脸识别业务的历史业务执行时的任务数据,如待分类图像或者待识别的人脸图像,作为训练样本。将历史业务执行后的执行结果,如图像分类结果或者人脸识别结果,作为对应的训练样本的标注。
S102:初始化所述神经网络模型的各节点之间数据传递顺序的有向无环图,确定所述神经网络模型的架构参数以及所述神经网络模型的权重参数。
在说明书一个或多个实施例中,该服务器可针对神经网络模型,初始化该神经网络模型的各节点之间数据传递顺序的有向无环图(Directed acyclic graph,DAG),根据初始化结果,确定神经网络模型的架构参数以及神经网络模型的权重参数,当然初始后得到的架构参数和权重参数都是需要后序步骤进行学习的,通过学习确定该神经网络模型的实际模型结构。其中,该架构参数为表征该神经网络模型结构的参数,如节点之间数据传输顺序、连接权重等。该权重参数与该架构参数是一一对应的,用于辅助调整该架构参数。该权重参数在优化过程中也会通过训练调整,并将调整结果“传递”给架构参数,辅助加速架构参数的调整,一方面可以提高模型结构“收敛”的速度,另一方面可利用不同的机器学习方法对架构参数调整,相当于增加了用于学习模型架构的数据的丰富度,使得最终确定架构参数更加准确。
于是,可将对该架构参数的寻优问题定义为:
其中,。/>为量化可微超网络,/>为架构参数,/>为/>的权值参数,/>为强化学习过程对/>的验证奖励,/>为/>的搜索空间,x表示训练样本,train表示训练集中的训练样本。也就是,将该神经网络模型的架构参数视为是一个可微的超网络进行优化。
需要说明的是,该神经网络模型的模型结构中节点之间数据传输顺序,例如,算子依赖关系,也是通过架构参数确定的。不同的架构参数可表征不同的模型结构。
图2a为本说明书提供的一种模型结构的有向无环图的示意图。其中可见不同节点之间的数据传输顺序相同。其中,虚线、直线、单点虚线和双点虚线表示不同的节点计算顺序,在该DAG中寻优可以简单理解为是确定更优的计算顺序。
S104:按照所述有向无环图的顺序,根据所述架构参数,依次预测所述神经网络模型的权重参数。
在说明书一个或多个实施例中,在对该架构参数进行迭代学习的过程中,对于每一次迭代过程,该服务器可先对权重参数进行调整,以“传递”给架构参数,再对架构参数进行调整,直至迭代次数达到预设次数,确定学习得到用于存内计算的神经网络模型的模型结构。
具体的,该服务器可按照该有向无环图的顺序,针对该神经网络模型的每一层节点,根据该层各节点的架构参数,确定该层各节点的权重参数。为了使后续可以采用训练样本,学习调整架构参数,根据在仿真环境预测得到的输出结果与标注的差异,计算梯度,实现前向传播。需要对权重参数进行量化取整,以满足可微条件。同时,为了保证后续准确性,后续对权重参数的调整采用直通式估计器(Straight-through estimator,STE)方法确定近似梯度。
针对每一层节点,该服务器可根据预设的该层各节点分别对应的架构参数的取值范围,确定该层节点的权重参数的取值范围,即确定上述公式中w的取值范围,之后根据该层节点的权重参数的取值范围和压缩因子,确定该层各节点归一化的权重参数,然后通过归一化的权重参数除以,确定二进制的该层各节点归一化的权重参数,以便在存储器中部署神经网络模型时使用。在归一化权重参数时,不同层节点的权重参数的取值范围不同,因此无需全部节点之间都是归一化的,只需要保证每层节点的权重参数时归一化的即可。
S106:通过设置为所述权重参数的所述神经网络模型,确定所述训练样本的预测结果,并根据所述预测结果与所述标注的差异确定损失,以损失最小为目标调整所述权重参数。
在本说明书一个或多个实施例中,该服务器在确定出归一化权重参数后,可根据预设的比特定点数的量化精度,确定量化步长,将初始化的权重参数除以该量化步长,将取整结果作为量化权重参数的恢复值。其中,比特定点数的量化精度可根据需要设置,例如,设置为8bit,主要可参考需要部署的存储器的特征来设置。
然后,基于量化权重参数的恢复值,在仿真环境中确定存储器上部署的神经网络模型中各层节点对应的连接权重。也就是,在仿真环境下模拟当按照该恢复值设置的神经网络模型被部署至存储器后,该存储器执行业务的准确度。通过预测结果和训练样本的标注,确定恢复值的梯度,作为近似的权重参数的梯度,并调整权重参数。
因此,该服务器可在该仿真环境中,将步骤S100确定的训练样本作为输入,输入部署在仿真环境的存储器中的神经网络模型,确定该神经网络模型的预测结果。
最后,根据预测结果与标注的差异,确定损失函数,并以损失函数最小为优化目标,调整所述权重参数。
具体来说,该权重参数的调整满足下述公式:
其中,t表示迭代轮数,w表示权重参数,q表示恢复值,train表示采用的是训练样本,α表示架构参数,表示当前可微超网络是以第t轮迭代的权重参数和第t轮迭代的架构参数确定的,当然近似处理以恢复值/>代替/>进行计算。
进一步地,在本说明书中,该服务器在基于量化权重参数的恢复值,确定输出预测结果的神经网络模型时,也可采用架构参数,对权重参数的恢复值进行加权,可以采用如softmax、sigmoid函数等进行激活,相当于采用架构参数进行注意力加权,可以在单轮迭代过程中,更好地确定哪些权重参数(实际上也对应的是架构参数)是更需要调整的。具体加权方式,本说明书不做限制,可根据需要设置。
至此,实现了对权重参数的量化,使得可通过有监督学习的方式,调整该权重参数。
S108:根据调整后的权重参数,重新确定所述架构参数,并通过仿真确定存储器运行所述神经网络模型的运行状态,以通过强化学习调整所述架构参数。
在本说明书一个或多个实施例中,该服务器在一轮迭代过程中,先基于有监督学习调整权重参数后,由于权重参数是根据架构参数确定的,并且是一一对应的,因此可以基于调整后的权重参数,采用启发式学习的方法对架构参数进行优化,以完成一轮迭代过程。
具体的,该服务器可根据步骤S108确定的权重参数,重新确定架构参数。得到该神经网络模型对应的候选模型。
通过仿真确定存储器运行该候选模型的运行状态,基于对各运行状态的预期目标,确定该重新确定架构参数对应的奖励,通常可以按照奖励最大化为目标,调整所述架构参数。当然,由于只有架构参数是无法确定该候选模型的运行状态,因此实际上可以采用将训练样本输入该候选模型的方式,确定运行状态。当然,此时由于主要考虑的是存储器运行该候选模型的运行状态,是否符合预期目标,因此采用启发式算法,如强化学习方法。所以是无监督训练,无需训练样本的标注。
当然,在调整权重参数时采用的训练样本与调整架构参数是采用的训练样本可以是相同的样本,但为了学习到的模型鲁棒性更好,可以选择不同的训练样本。例如,将训练样本集合划分为有监督样本集和验证样本集,分别用于调整权重参数和调整架构参数。具体如何设置可根据需要确定,本说明书不做限制。
S110:判断所述架构参数是否满足结束条件,若是则执行步骤S112,若否,则执行步骤S114。
在说明书一个或多个实施例中,该服务器在每轮迭代过程调整架构参数后,都可以判断该架构参数是否满足结束条件,若是,则确定已经得到需要的神经网络模型的模型架构,执行步骤S112停止继续寻优的过程,若否,则执行步骤S114继续下一轮迭代过程,也就是继续重复步骤S104~S108的过程,直至得到满足结束条件的架构参数为止。
其中,该结束条件可以根据需要设置,本说明书不做限制。具体可以按照惯用的优化算法结束条件设置,例如,按照经验设置最大迭代轮数,判断得到当前架构参数的迭代轮数是否等于最大迭代轮数,若是则结束优化,否则继续优化。或者,也可以根据相邻几轮步骤S106确定出的梯度的变化值(即,梯度的加速度)是否小于预设阈值,确定优化是否达到瓶颈,若是则结束优化,否则继续优化。当然,相邻迭代过程的轮数也可以是根据需要设置的,本说明书不做限制。类似的,该结束条件也可以是真多步骤S108确定出的奖励设置的,例如,假设以1000次迭代过程作为一个优化周期,判断预设数量的周期得到奖励值是否均小于已设置,也可以确定优化达到瓶颈,则结束优化。
S112:根据所述架构参数,确定用于所述存储器运行的所述神经网络模型,并响应于所述目标任务的任务请求,通过所述存储器进行对应所述神经网络模型的模拟计算,确定所述任务请求的预测结果,以根据所述预测结果执行所述任务请求。
在说明书一个或多个实施例中,该服务器可以确定已经得到了部署在存储器中的神经网络模型的模型结构,则可根据本轮迭代过程确定出的架构参数,确定用于该存储器运行的神经网络模型。并可响应于该目标任务的任务请求,通过该存储器的模拟电路实现神经网络模型的模拟计算,确定该任务请求的预测结果,以根据预测结果执行任务请求。
如在步骤S100中所述的假设,该神经网络模型用于进行图像分类,则在步骤S112确定该神经网络模型的架构参数后,该服务器可将该神经网络模型部署至任一设备的存储器中,在接收到图像分类业务的业务请求后,将该业务请求携带的待分类的图像存储至该存储器,使该存储器采用自身的电路元件通过模拟电路实现该神经网络模型的计算过程,确定该待分类的图像的分类结果。则该服务器可以通过访问该存储器,确定该图像分类业务的业务执行结果(即分类结果)。
S114:根据所述架构参数,重新确定权重参数,以根据所述训练样本以及所述标注,继续调整权重参数和所述架构参数,直至所述架构参数满足结束条件为止。
在说明书一个或多个实施例中,若当前迭代过程不满足结束条件,则该服务器可以根据当前迭代过程调整后的权重参数以及架构参数,重复步骤S104~S108,直至得到满足结束条件的架构参数为止。其中,权重参数虽然不是最终表示模型结构的参数,但是用于确定该架构参数,相当于该优化过程为两种参数通过两层不同的循环过程,在每轮迭代过程中进行调整。使得可以采用更丰富的训练样本,不同的训练目标对该架构参数进行调整,使得对架构参数的可行解空间限制更少,得到神经网络模型输出结果的准确率可更高。
基于图1所示的生成存内计算神经网络模型方法,首先根据待构建的神经网络模型的目标任务,根据历史执行所述目标任务的任务数据作为训练样本,以及将目标任务的执行结果作为标注,之后通过初始化模型各节点之间数据传递顺序的有向无环图,确定架构参数以及权重参数,依该有向无环图的顺序,基于架构参数预测对应的权重参数,并根据配置了预测的权重参数的模型,通过训练样本对权重参数进行调整,然后通过调整后的权重参数,重新确定所述架构参数,直至架构参数满足结束条件,确定在存储器运行的神经网络模型,并通过存储器运行该神经网络模型执行目标任务。
通过设置可相互传参的权重参数和架构参数,并分别通过仿真场景的有监督训练和启发式学习进行调整,使得可以更为高效的学习深度神经网络架构。
在说明书一个或多个实施例中,在步骤S102、S104以及S108中,还可以进一步考虑实际存储器的电路在运行时会产生的误差对计算过程带来的影响。由于目前存内计算方案中的模拟存内计算方法,由于具有更高的能量效率,而被更广泛的应用于低功耗或者网络边缘设备。而模拟存内计算方法通过采用ADC/DAC、控制器、交叉阵列等模拟模块,实现存储器的算法运算。但是,由于实际运行时并非理想环境,存储器存在工艺误差,导致模拟存内计算只能执行低精度矩阵计算操作。
在说明书一个或多个实施例中,为了提高神经网络模型的鲁棒性,提高非理想环境下神经网络模型输出结果的准确性。该服务器在步骤S102将该架构参数的寻优问题定义为:
其中,f表示为非理想特性的特征空间。其余参数可参考前述公式定义。
进一步地,在说明书一个或多个实施例中,由于考虑到了非理想特性的影响,该服务器可以步骤S104预测该神经网络模型的权重参数时,对部署神经网络模型的存储器进行非理想特性建模,确定非理想特性对应的非理想特性,并以非理想特性作为噪声或者权重参数的扰动,对该权重参数进行加权,根据加权结果继续执行后续步骤。
其中,非理想特性包括但不限于:存储器的电子器件之间(Device-to-Device)随机性,如制造公差。除了制造阶段可能带来的差异以外,存储器中同一电子器件在不同周期(Cycle-to-Cycle)的随机性,以及固定型故障(Stuck-At Faults,SAF)故障、阻值漂移(Drift)、电压降(IR Drop)等。具体需要基于哪些非理想特性进行特征提取,本说明书不做限定。
同理,在步骤S108确定架构参数的奖励时,也可引入该非理想特性,具体的在基于权重参数确定候选模型时,也可利用非理想特性进行模型参数的加权,确定非理想特性加权后的候选模型。
进一步地,需要说明的是,由于非理想特性与存储器结构相关,也与存储器部署的神经网络模型的计算时涉及到的电子器件相关,因此在步骤S108确定该非理想特性时,该服务器可先根据权重参数,确定该候选模型,然后再确定该候选模型运行涉及到的电子器件,再确定运行涉及到的电子器件可对应的非理想特性,再进行非理想特性的加权。例如,假设存储器采用候选模型进行模拟计算时,无需用到电阻,那么确定阻值漂移的非理想特性就不再合理,可以不用考虑阻值漂移的非理想特性。
更进一步地,在步骤S108中,该服务器可采用蒙特卡洛采样近似估计架构参数的梯度期望。如下公式所示:
可见通过对架构参数的采样,可以确定架构参数的分布,寻优目标便更新为如何调整得到更服从预期的分布的架构参数。
另外,在在步骤S108中,该服务器还可以采用近端策略梯度算法(ProximalPolicy Optimization,PPO)实现架构参数的梯度期望估计,如下式:
其中,表示当前/>轮迭代过程中模型参数在状态/>的采样动作/>与旧模型参数在状态/>下的采样动作/>的概率比,即,限制了每轮迭代过程/>的策略更新规模,提高策略梯度训练稳定性。
另外,在本说明书一个或多个实施例中,为了避免出现过拟合的问题,避免确定出的架构参数是局部最优解,导致模型鲁棒性差的情况出现。该服务器还可将用于前述步骤对架构参数寻优采用的样本进行区分,除了训练集以外,增加验证集/>。
则在步骤S102该架构参数的寻优问题可定义为:
其中,。也就是说权值参数,通过训练集确定,而架构参数寻优时采用验证集来学习。
同样的,在步骤S108中,在通过蒙特卡洛采样确定架构参数的梯度期望时,可基于验证集确定,即采用下述公式采样确定梯度。
而若采用PPO确定架构参数的梯度,则公式为:
。
权重参数和架构参数采用不同的样本集中的样本确定,可以进一步提高基于该架构参数确定的模型的鲁棒性。
图2b为本说明书提供的两种参数循环优化的示意图,其中,两种参数分别为权重参数以及架构参数,在图2b中可见,先基于左侧的DAG确定初始化的权重参数,然后通过图2b中间下方的循环过程,更新权重参数,并继承到架构参数中,通过图2b中间上方的循环过程,更新架构参数,并重新开始迭代过程,直至确定出满足结束条件的架构参数,也就是占优架构导出,得到用于部署至存储器的架构参数。
图3为本说明书提供的权重参数调整循环的示意图。其中,可见在初始化权重参数,即量化权重参数中可以加入存储器的电路级以及设备级的非理想特性,提高最终确定出的架构参数与实际应用场景的匹配程度。图4为本说明书提供的架构参数调整循环的示意图。其中,在调整架构参数时,可根据策略梯度算法从各候选策略中确定当前选用的策略π,根据通过权重参数以及策略π,确定模型结构,即,并重建模型的子网络架构,以及对应的神经网络模型。通过将该神经网络模型部署在存储器或者仿真环境中,得到该神经网络模型对应的非理想特,并注入神经网络模型,在通过该神经网络模型输出的业务执行结果,确定该策略梯度算法的梯度,即根据选择的策略π的准确度,调整策略梯度算法,以便下一迭代过程确定新的策略。如此反复直至得到满足结束条件的架构参数。
以上为本申请的一个或多个实施的方法,基于同样的思路,本申请还提供了相应的生成存内计算神经网络模型装置,如图5所示。
图5为本申请提供的一种生成存内计算神经网络模型的装置的示意图,包括:
样本构建模块300,根据待生成模型结构的神经网络模型的目标任务,获取历史执行所述目标任务的任务数据作为训练样本,确定历史执行所述目标任务的执行结果,作为训练样本的标注;
初始化模块302,初始化所述神经网络模型的各节点之间数据传递顺序的有向无环图,确定所述神经网络模型的架构参数以及所述神经网络模型的权重参数,其中,所述模型结构为可微超网络结构,所述架构参数与所述权重参数一一对应;
权重预测模块304,按照所述有向无环图的顺序,根据所述架构参数,依次预测所述神经网络模型的权重参数;
权重调整模块306,通过设置为所述权重参数的所述神经网络模型,确定所述训练样本的预测结果,并根据所述预测结果与所述标注的差异确定损失,以损失最小为目标调整所述权重参数;在所述架构预测模块,判断所述架构参数不满足结束条件时,所述权重调整模块,根据所述架构参数,重新确定权重参数,以根据所述训练样本以及所述标注,继续调整权重参数和所述架构参数,直至所述架构参数满足结束条件为止;
所述架构预测模块308,根据调整后的权重参数,重新确定所述架构参数,并通过仿真确定存储器运行所述神经网络模型的运行状态,以通过强化学习调整所述架构参数;判断所述架构参数是否满足结束条件;若是,则根据所述架构参数,确定用于所述存储器运行的所述神经网络模型,并响应于所述目标任务的任务请求,通过所述存储器进行对应所述神经网络模型的模拟计算,确定所述任务请求的预测结果,以根据所述预测结果执行所述任务请求。
可选地,权重预测模块304,按照所述有向无环图,针对所述神经网络模型的每一层节点,根据该层各节点的架构参数,确定该层各节点的权重参数。
可选地,权重预测模块304,根据预设的该层各节点分别对应的架构参数的取值范围,确定该层节点的权重参数的取值范围,根据该层节点的权重参数的取值范围,确定该层各节点归一化的权重参数。
可选地,权重调整模块306,根据预设的量化精度,对所述归一化的权重参数进行量化取整,确定所述归一化的权重参数的恢复值,将所述训练样本作为输入,输入按照所述恢复值设置各层节点的神经网络模型,得到输出的所述训练样本的预测结果,根据所述预测结果与所述标注的差异,确定损失函数,以所述损失函数最小为优化目标,调整所述权重参数。
可选地,所述架构预测模块308,基于所述架构参数与所述权重参数一一对应的关系,根据所述归一化的权重参数的恢复值,重新确定权重参数。
可选地,权重调整模块306,根据预设的量化精度,对所述归一化的权重参数进行量化取整,确定所述归一化的权重参数的恢复值之前,对部署所述神经网络模型的存储器进行非理想特性建模,确定非理想特性对应的非理想特性,根据所述非理想特性,对所述归一化的权重参数进行调整,确定用于量化取整的权重参数。
可选地,权重调整模块306,将所述训练样本作为输入,输入按照所述恢复值设置各层节点的神经网络模型,得到输出的所述训练样本的预测结果之前,基于所述架构参数与所述权重参数一一对应的关系,根据所述架构参数,对各层节点对应的恢复值进行加权,根据加权后的恢复值,确定用于输入训练样本的神经网络模型。
可选地,架构预测模块308,根据重新确定所述架构参数,确定所述神经网络模型对应的候选模型,对部署所述神经网络模型的存储器进行非理想特性建模,确定非理想特性对应的非理想特性,根据所述非理想特性,调整所述候选模型,通过仿真确定存储器运行调整后的所述候选模型的运行状态,以通过强化学习调整所述架构参数。
可选地,架构预测模块308,确定所述运行状态与预设的优化目标之间的差异,根据所述差异,确定所述架构参数的梯度,根据所述梯度,调整所述神经网络模型的架构参数。
可选地,架构预测模块308,根据所述差异,采用蒙特卡洛采样对调整前的架构参数进行采样,根据各采样结果,拟合所述调整前的架构参数的梯度。
本申请还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种生成存内计算神经网络模型的方法。
本申请还提供了图6所示的一种对应于图1的电子设备的示意结构图。如图6所示,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的生成存内计算神经网络模型插值方法。当然,本申请图6中省略了内部总线、网络接口、内存以及非易失性存储器等内容。
当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (13)
1.一种生成存内计算神经网络模型的方法,其特征在于,包括:
根据待生成模型结构的神经网络模型的目标任务,获取历史执行所述目标任务的任务数据作为训练样本,确定历史执行所述目标任务的执行结果,作为训练样本的标注;
初始化所述神经网络模型的各节点之间数据传递顺序的有向无环图,确定所述神经网络模型的架构参数以及所述神经网络模型的权重参数,其中,所述模型结构为可微超网络结构,所述架构参数与所述权重参数一一对应;
按照所述有向无环图的顺序,根据所述架构参数,依次预测所述神经网络模型的权重参数;
通过设置为所述权重参数的所述神经网络模型,确定所述训练样本的预测结果,并根据所述预测结果与所述标注的差异确定损失,以损失最小为目标调整所述权重参数;
根据调整后的权重参数,重新确定所述架构参数,并通过仿真确定存储器运行所述神经网络模型的运行状态,以通过强化学习调整所述架构参数;
判断所述架构参数是否满足结束条件;
若是,则根据所述架构参数,确定用于所述存储器运行的所述神经网络模型,并响应于所述目标任务的任务请求,通过所述存储器进行对应所述神经网络模型的模拟计算,确定所述任务请求的预测结果,以根据所述预测结果执行所述任务请求;
若否,则根据所述架构参数,重新确定权重参数,以根据所述训练样本以及所述标注,继续调整权重参数和所述架构参数,直至所述架构参数满足结束条件为止。
2.如权利要求1所述的方法,其特征在于,按照所述有向无环图的顺序,根据所述架构参数,依次预测所述神经网络模型的权重参数,具体包括:
按照所述有向无环图,针对所述神经网络模型的每一层节点,根据该层各节点的架构参数,确定该层各节点的权重参数。
3.如权利要求2所述的方法,其特征在于,根据该层各节点的架构参数,确定该层各节点的权重参数,具体包括:
根据预设的该层各节点分别对应的架构参数的取值范围,确定该层节点的权重参数的取值范围;
根据该层节点的权重参数的取值范围,确定该层各节点归一化的权重参数。
4.如权利要求3所述的方法,其特征在于,通过设置为所述权重参数的所述神经网络模型,确定所述训练样本的预测结果,并根据所述预测结果与所述标注的差异确定损失,以损失最小为目标调整所述权重参数,具体包括:
根据预设的量化精度,对所述归一化的权重参数进行量化取整,确定所述归一化的权重参数的恢复值;
将所述训练样本作为输入,输入按照所述恢复值设置各层节点的神经网络模型,得到输出的所述训练样本的预测结果;
根据所述预测结果与所述标注的差异,确定损失函数;
以所述损失函数最小为优化目标,调整所述权重参数。
5.如权利要求4所述的方法,其特征在于,根据所述架构参数,重新确定权重参数,具体包括:
基于所述架构参数与所述权重参数一一对应的关系,根据所述归一化的权重参数的恢复值,重新确定权重参数。
6.如权利要求4所述的方法,其特征在于,根据预设的量化精度,对所述归一化的权重参数进行量化取整,确定所述归一化的权重参数的恢复值之前,所述方法还包括:
对部署所述神经网络模型的存储器进行非理想特性建模,确定非理想特性对应的非理想特性;
根据所述非理想特性,对所述归一化的权重参数进行调整,确定用于量化取整的权重参数。
7.如权利要求4所述的方法,其特征在于,将所述训练样本作为输入,输入按照所述恢复值设置各层节点的神经网络模型,得到输出的所述训练样本的预测结果之前,所述方法还包括:
基于所述架构参数与所述权重参数一一对应的关系,根据所述架构参数,对各层节点对应的恢复值进行加权;
根据加权后的恢复值,确定用于输入训练样本的神经网络模型。
8.如权利要求1所述的方法,其特征在于,通过仿真确定存储器运行所述神经网络模型的运行状态,以通过强化学习调整所述架构参数,具体包括:
根据重新确定所述架构参数,确定所述神经网络模型对应的候选模型;
对部署所述神经网络模型的存储器进行非理想特性建模,确定非理想特性对应的非理想特性;
根据所述非理想特性,调整所述候选模型;
通过仿真确定存储器运行调整后的所述候选模型的运行状态,以通过强化学习调整所述架构参数。
9.如权利要求8所述的方法,其特征在于,通过强化学习调整所述架构参数,具体包括:
确定所述运行状态与预设的优化目标之间的差异;
根据所述差异,确定所述架构参数的梯度;
根据所述梯度,调整所述神经网络模型的架构参数。
10.如权利要求9所述的方法,其特征在于,根据所述差异,确定所述架构参数的梯度,具体包括:
根据所述差异,采用蒙特卡洛采样对调整前的架构参数进行采样;
根据各采样结果,拟合所述调整前的架构参数的梯度。
11.一种生成存内计算神经网络模型的装置,其特征在于,包括:
样本构建模块,根据待生成模型结构的神经网络模型的目标任务,获取历史执行所述目标任务的任务数据作为训练样本,确定历史执行所述目标任务的执行结果,作为训练样本的标注;
初始化模块,初始化所述神经网络模型的各节点之间数据传递顺序的有向无环图,确定所述神经网络模型的架构参数以及所述神经网络模型的权重参数,其中,所述模型结构为可微超网络结构,所述架构参数与所述权重参数一一对应;
权重预测模块,按照所述有向无环图的顺序,根据所述架构参数,依次预测所述神经网络模型的权重参数;
权重调整模块,通过设置为所述权重参数的所述神经网络模型,确定所述训练样本的预测结果,并根据所述预测结果与所述标注的差异确定损失,以损失最小为目标调整所述权重参数;在架构预测模块,判断所述架构参数不满足结束条件时,所述权重调整模块,根据所述架构参数,重新确定权重参数,以根据所述训练样本以及所述标注,继续调整权重参数和所述架构参数,直至所述架构参数满足结束条件为止;
所述架构预测模块,根据调整后的权重参数,重新确定所述架构参数,并通过仿真确定存储器运行所述神经网络模型的运行状态,以通过强化学习调整所述架构参数;判断所述架构参数是否满足结束条件;若是,则根据所述架构参数,确定用于所述存储器运行的所述神经网络模型,并响应于所述目标任务的任务请求,通过所述存储器进行对应所述神经网络模型的模拟计算,确定所述任务请求的预测结果,以根据所述预测结果执行所述任务请求。
12.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~10任一项所述的方法。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311344094.XA CN117077726B (zh) | 2023-10-17 | 2023-10-17 | 一种生成存内计算神经网络模型的方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311344094.XA CN117077726B (zh) | 2023-10-17 | 2023-10-17 | 一种生成存内计算神经网络模型的方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117077726A true CN117077726A (zh) | 2023-11-17 |
CN117077726B CN117077726B (zh) | 2024-01-09 |
Family
ID=88717677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311344094.XA Active CN117077726B (zh) | 2023-10-17 | 2023-10-17 | 一种生成存内计算神经网络模型的方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117077726B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160057190A1 (en) * | 2014-08-19 | 2016-02-25 | Palo Alto Research Center Incorporated | System and method for reconstructable all-in-one content system |
CN110427171A (zh) * | 2019-08-09 | 2019-11-08 | 复旦大学 | 可扩展的定点数矩阵乘加运算的存内计算结构和方法 |
WO2022135209A1 (zh) * | 2020-12-25 | 2022-06-30 | 清华大学 | 神经网络的权值的量化方法、量化装置及存储介质 |
WO2022134600A1 (zh) * | 2020-12-25 | 2022-06-30 | 东云睿连(武汉)计算技术有限公司 | 一种神经网络交互式自动训练系统和方法 |
CN114707636A (zh) * | 2022-03-18 | 2022-07-05 | 北京中科明彦科技有限公司 | 神经网络架构搜索方法、装置、电子设备及存储介质 |
WO2023116314A1 (zh) * | 2021-12-23 | 2023-06-29 | 哲库科技(上海)有限公司 | 一种神经网络加速装置、方法、设备和计算机存储介质 |
-
2023
- 2023-10-17 CN CN202311344094.XA patent/CN117077726B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160057190A1 (en) * | 2014-08-19 | 2016-02-25 | Palo Alto Research Center Incorporated | System and method for reconstructable all-in-one content system |
CN110427171A (zh) * | 2019-08-09 | 2019-11-08 | 复旦大学 | 可扩展的定点数矩阵乘加运算的存内计算结构和方法 |
WO2022135209A1 (zh) * | 2020-12-25 | 2022-06-30 | 清华大学 | 神经网络的权值的量化方法、量化装置及存储介质 |
WO2022134600A1 (zh) * | 2020-12-25 | 2022-06-30 | 东云睿连(武汉)计算技术有限公司 | 一种神经网络交互式自动训练系统和方法 |
WO2023116314A1 (zh) * | 2021-12-23 | 2023-06-29 | 哲库科技(上海)有限公司 | 一种神经网络加速装置、方法、设备和计算机存储介质 |
CN114707636A (zh) * | 2022-03-18 | 2022-07-05 | 北京中科明彦科技有限公司 | 神经网络架构搜索方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
冶忠林;赵海兴;张科;朱宇;肖玉芝;: "基于邻节点和关系模型优化的网络表示学习", 计算机研究与发展, no. 12 * |
谢彪: "《基于强化学习和参数共享的神经网络结构搜索》", 《中国优秀硕士学位论文全文数据库》, no. 05 * |
Also Published As
Publication number | Publication date |
---|---|
CN117077726B (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018044633A1 (en) | End-to-end learning of dialogue agents for information access | |
CN113837370B (zh) | 用于训练基于对比学习的模型的方法和装置 | |
US11861467B2 (en) | Adaptive quantization for execution of machine learning models | |
CN113112013A (zh) | 针对分辨率降低的神经网络的优化量化 | |
JP7009020B2 (ja) | 学習方法、学習システム、学習装置、方法、適用装置、及びコンピュータプログラム | |
US20210350203A1 (en) | Neural architecture search based optimized dnn model generation for execution of tasks in electronic device | |
CN116521380A (zh) | 一种资源自适应协同的模型训练加速方法、装置及设备 | |
US20190197425A1 (en) | Deep convolutional factor analyzer | |
CN116304720B (zh) | 一种代价模型训练的方法、装置、存储介质及电子设备 | |
CN116151363B (zh) | 分布式强化学习系统 | |
Oneto et al. | Learning resource-aware classifiers for mobile devices: from regularization to energy efficiency | |
JP2019133628A (ja) | 情報処理方法及び情報処理システム | |
CN116402108A (zh) | 一种模型训练及图数据的处理方法、装置、介质及设备 | |
CN112988275B (zh) | 一种基于任务感知的移动边缘计算多用户计算卸载方法 | |
US20220198260A1 (en) | Multi-level multi-objective automated machine learning | |
Ziegler et al. | Online and offline machine learning for industrial design flow tuning:(Invited-ICCAD special session paper) | |
CN117077726B (zh) | 一种生成存内计算神经网络模型的方法、装置及介质 | |
CN115136141A (zh) | 用于实现混合信号集成电路的受限计算的操作变换的系统和方法 | |
KR20180028610A (ko) | 관련도 벡터 머신을 이용한 기계학습방법, 이를 구현하는 컴퓨터 프로그램 및 이를 수행하도록 구성되는 정보처리장치 | |
CN114707655B (zh) | 一种量子线路转换方法、系统、存储介质和电子设备 | |
CN114995818A (zh) | 一种Simulink模型到C语言的优化参数自动配置方法 | |
CN111753990B (zh) | 一种量子计算机模拟环境方法、设备及介质 | |
WO2021226709A1 (en) | Neural architecture search with imitation learning | |
CN110929871A (zh) | 博弈决策方法和系统 | |
CN116991388B (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 |