一种用于多任务神经网络的量化和硬件加速方法及装置转让专利

申请号 : CN202010552322.2

文献号 : CN111797984A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 翟乃鹏

申请人 : 宁波物栖科技有限公司

摘要 :

本发明实施例涉及一种用于多任务神经网络的量化和硬件加速方法及装置,所述方法包括:获取预设的多个多任务神经网络模型,其中,所述多个多任务神经网络模型包括的层数一致;提取所述多个多任务神经网络模型中同一层的共享权重,生成对应权重码表,其中,所述权重码表包含所述共享权重;获取所述多个多任务神经网络模型的训练样本,从所述训练样本中分析共享特征值,生成对应特征值码表,其中,所述特征值码表包含所述共享特征值;将所述多个多任务神经网络模型放入神经网络加速器硬件中,基于所述权重码表以及所述特征值码表对所述多个多任务神经网络模型进行加速。

权利要求 :

1.一种用于多任务神经网络的量化和硬件加速方法,其特征在于,所述方法包括:获取预设的多个多任务神经网络模型,其中,所述多个多任务神经网络模型包括的层数一致;

提取所述多个多任务神经网络模型中同一层的共享权重,生成对应权重码表,其中,所述权重码表包含所述共享权重;

获取所述多个多任务神经网络模型的训练样本,从所述训练样本中分析共享特征值,生成对应特征值码表,其中,所述特征值码表包含所述共享特征值;

将所述多个多任务神经网络模型放入神经网络加速器硬件中,基于所述权重码表以及所述特征值码表对所述多个多任务神经网络模型进行加速。

2.根据权利要求1所述的方法,其特征在于,所述提取所述多个多任务神经网络模型中同一层的共享权重,生成对应权重码表,包括:提取所述多个多任务神经网络模型中同一层的所有权重;

从所述权重中剔除重复权重并协同聚类,得到包含多个多任务神经网络模型中同一层的共享权重的权重码表。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:针对所述权重码表中包含的所述共享权重进行聚类,生成多个簇;

针对任一簇,选择聚类中心代替该簇中包含的权重。

4.根据权利要求1所述的方法,其特征在于,所述基于所述权重码表以及所述特征值码表对所述多个多任务神经网络模型进行加速,包括:基于所述权重码表以及所述特征值码表,对所述多个多任务神经网络模型中任一一层执行以下步骤:在神经网络加速器的运算单元中,使用每一对需要对应位置相乘的输入的特征值索引和权重的特征值索引查找乘法结果复用表;

如果每一对需要对应位置相乘的输入的特征值索引和权重的特征值索引存在于所述乘法结果复用表,使用所述乘法结果复用表中的乘法结果;

如果每一对需要对应位置相乘的输入的特征值索引和权重的特征值索引未存在于所述乘法结果复用表,根据每一对需要对应位置相乘的输入的特征值索引和权重的特征值索引查找真实值,利用所述真实值进行相乘;

将累加结束的输出特征值,与输出码表项进行对比,将最近接的码表项的索引输出,保存在存储单元。

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:若多个多任务神经网络模型中当前层为首层时,对于所述多个多任务神经网络模型首层输入的输入特征值,与所述特征值码表进行对应,查找所述输入特征值的索引。

6.一种用于多任务神经网络的量化和硬件加速装置,其特征在于,所述装置包括:模型获取模块,用于获取预设的多个多任务神经网络模型,其中,所述多个多任务神经网络模型包括的层数一致;

权重提取模块,用于提取所述多个多任务神经网络模型中同一层的共享权重,生成对应权重码表,其中,所述权重码表包含所述共享权重;

特征值分析模块,用于获取所述多个多任务神经网络模型的训练样本,从所述训练样本中分析共享特征值,生成对应特征值码表,其中,所述特征值码表包含所述共享特征值;

模型加速模块,用于将所述多个多任务神经网络模型放入神经网络加速器硬件中,基于所述权重码表以及所述特征值码表对所述多个多任务神经网络模型进行加速。

7.根据权利要求6所述的装置,其特征在于,所述权重提取模块具体用于:提取所述多个多任务神经网络模型中同一层的所有权重;

从所述权重中剔除重复权重并协同聚类,得到包含多个多任务神经网络模型中同一层的共享权重的权重码表。

8.根据权利要求7所述的装置,其特征在于,所述装置还包括:权重聚类模块,用于针对所述权重码表中包含的所述共享权重进行聚类,生成多个簇;

针对任一簇,选择聚类中心代替该簇中包含的权重。

9.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的用于多任务神经网络的量化和硬件加速的程序,以实现权利要求1~5中任一项所述的用于多任务神经网络的量化和硬件加速的方法。

10.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~5中任一项所述的用于多任务神经网络的量化和硬件加速的方法。

说明书 :

一种用于多任务神经网络的量化和硬件加速方法及装置

技术领域

[0001] 本发明实施例涉及深度神经网络模型的硬件加速领域,尤其涉及一种用于多任务神经网络的量化和硬件加速方法及装置。

背景技术

[0002] 深度神经网络在图像处理、语音识别、自然语言处理等任务中取得了很好的效果,同时在终端设备和云端数据中心等场景中被广泛应用,并且出现了很多用于加速深度神经网络的专有硬件设计,即神经网络加速器。深度神经网络模型通常具有庞大的参数量以及计算量,且乘加运算占据了计算量中的绝大部分,因此,神经网络加速器中通常使用阵列式的乘加器(MAC,multiply and accumulate)来提高运算并行度。除此之外,神经网络加速器还通常使用稀疏计算方法和去除冗余计算的方式提高神经网络加速器的运行效率,稀疏计算方法利用神经网络参数和激活值稀疏(非零值较少)的特性,跳过对不影响结果的零值的计算,降低神经网络模型的计算量和存储量,而去除冗余计算的主要思路是找到神经网络中有可能经常出现同样计算的位置,通过保存计算结果来跳过神经网络中重复的计算,即减少了运算次数,可以降低计算单元的功耗。
[0003] 神经网络模型的训练过程中,通常使用32bit浮点数(fp32)保存模型的参数和激活值,但浮点数的保存、传输、运算都会带来比定点数更大的硬件开销。因此,出现了一些将神经网络中的浮点数据表示转化为低精度整型数据的方法,即量化。当前商业产品中已经证明通常使用8bit整型数代替32bit浮点数对神经网络模型精度几乎没有损失,且具有较好的普适性,对于较多模型适用,而学术界的一些成果中也表明更低精度如4bit、2bit甚至1bit的二值数据类型也可以在不明显损失模型精度的同时大幅降低模型大小。
[0004] 随着智能设备的发展,对周边场景信息提取、交互的需求越来越高,多任务神经网络渐渐出现,成为AI应用的新趋势。例如自动驾驶技术使用摄像头对周围路况信息进行采集分析,通常需要用于目标识别和自动避障的物体检测模块,用于区分道路/非道路的语义分割模块,用于跟踪持续移动的物体轨迹的物体跟踪模块等。由于这些协同使用的神经网络的功能有相似之处,训练这些神经网络时可以通过共享网络结构、共享参数(权重)等方法,在不影响网络精度的同时降低模型大小。

发明内容

[0005] 鉴于此,为解决现有技术中的问题,本发明实施例提供了一种用于多任务神经网络的量化和硬件加速方法及装置。
[0006] 第一方面,本发明实施例提供了一种用于多任务神经网络的量化和硬件加速方法,所述方法包括:
[0007] 获取预设的多个多任务神经网络模型,其中,所述多个多任务神经网络模型包括的层数一致;
[0008] 提取所述多个多任务神经网络模型中同一层的共享权重,生成对应权重码表,其中,所述权重码表包含所述共享权重;
[0009] 获取所述多个多任务神经网络模型的训练样本,从所述训练样本中分析共享特征值,生成对应特征值码表,其中,所述特征值码表包含所述共享特征值;
[0010] 将所述多个多任务神经网络模型放入神经网络加速器硬件中,基于所述权重码表以及所述特征值码表对所述多个多任务神经网络模型进行加速。
[0011] 在一个可能的实施方式中,所述提取所述多个多任务神经网络模型中同一层的共享权重,生成对应权重码表,包括:
[0012] 提取所述多个多任务神经网络模型中同一层的所有权重;
[0013] 从所述权重中剔除重复权重,得到包含多个多任务神经网络模型中同一层的共享权重的权重码表。
[0014] 在一个可能的实施方式中,所述方法还包括:
[0015] 针对所述权重码表中包含的所述共享权重进行聚类,生成多个簇;
[0016] 针对任一簇,选择聚类中心代替该簇中包含的权重。
[0017] 在一个可能的实施方式中,所述基于所述权重码表以及所述特征值码表对所述多个多任务神经网络模型进行加速,包括:
[0018] 基于所述权重码表以及所述特征值码表,对所述多个多任务神经网络模型中任一一层执行以下步骤:
[0019] 在神经网络加速器的运算单元中,使用每一对需要对应位置相乘的输入的特征值索引和权重的特征值索引查找乘法结果复用表;
[0020] 如果每一对需要对应位置相乘的输入的特征值索引和权重的特征值索引存在于所述乘法结果复用表,使用所述乘法结果复用表中的乘法结果;
[0021] 如果每一对需要对应位置相乘的输入的特征值索引和权重的特征值索引未存在于所述乘法结果复用表,根据每一对需要对应位置相乘的输入的特征值索引和权重的特征值索引查找真实值,利用所述真实值进行相乘;
[0022] 将累加结束的输出特征值,与输出码表项进行对比,将最近接的码表项的索引输出,保存在存储单元。
[0023] 在一个可能的实施方式中,所述方法还包括:
[0024] 若多个多任务神经网络模型中当前层为首层时,对于所述多个多任务神经网络模型首层输入的输入特征值,与所述特征值码表进行对应,查找所述输入特征值的索引。
[0025] 第二方面,本发明实施例提供了一种用于多任务神经网络的量化和硬件加速装置,所述装置包括:
[0026] 模型获取模块,用于获取预设的多个多任务神经网络模型,其中,所述多个多任务神经网络模型包括的层数一致;
[0027] 权重提取模块,用于提取所述多个多任务神经网络模型中同一层的共享权重,生成对应权重码表,其中,所述权重码表包含所述共享权重;
[0028] 特征值分析模块,用于获取所述多个多任务神经网络模型的训练样本,从所述训练样本中分析共享特征值,生成对应特征值码表,其中,所述特征值码表包含所述共享特征值;
[0029] 模型加速模块,用于将所述多个多任务神经网络模型放入神经网络加速器硬件中,基于所述权重码表以及所述特征值码表对所述多个多任务神经网络模型进行加速。
[0030] 在一个可能的实施方式中,所述权重提取模块具体用于:
[0031] 提取所述多个多任务神经网络模型中同一层的所有权重;
[0032] 从所述权重中剔除重复权重,得到包含多个多任务神经网络模型中同一层的共享权重的权重码表。
[0033] 在一个可能的实施方式中,所述装置还包括:
[0034] 权重聚类模块,用于针对所述权重码表中包含的所述共享权重进行聚类,生成多个簇;
[0035] 针对任一簇,选择聚类中心代替该簇中包含的权重。
[0036] 第三方面,本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述的用于多任务神经网络的量化和硬件加速的方法。
[0037] 第四方面,本发明实施例提供一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的用于多任务神经网络的量化和硬件加速的程序,以实现前述的用于多任务神经网络的量化和硬件加速的方法。
[0038] 本发明实施例提供的用于多任务神经网络的量化和硬件加速方法及装置,通过协同量化来充分利用多任务神经网络中的模型相似性,通过训练时协同更新,得到一组可以充分表达多任务神经网络中的多个模型数据分布的量化参数,即量化参数共享。由于多任务神经网络之间的功能相关,且同一时刻使用同样或相似的输入,相近位置的参数和特征通相似程度高,且使用同一组量化参数进行数据量化,因此在相近位置,相同的计算容易重复发生。因此,在神经网络加速器的运算阵列的每个运算单元中,加入乘法结果复用表,将刚刚被使用过的乘法运算的乘数、被乘数和乘法结果保存在复用表中,下一次运算时使用乘数与被乘数查询复用表,若表中有与之相同的计算过程,即可直接使用复用表中该项所保存的乘法结果,不需要使用乘法器计算。这种方法通过协同量化降低了神经网络中的模型参数量,减少神经网络加速器的存储系统开销,且共享的量化参数可以将多任务神经网络中的相似计算转化为相同计算,让多任务的计算过程产生了局部性,即刚出现过的计算,在短时间内又会再次出现,因此可以用低开销的查表操作代替高开销的乘法操作。

附图说明

[0039] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0040] 图1为本发明实施例的一种用于多任务神经网络的量化和硬件加速方法的实施流程示意图;
[0041] 图2为本发明实施例的另一种用于多任务神经网络的量化和硬件加速方法的实施流程示意图;
[0042] 图3为本发明实施例的一种用于多任务神经网络的量化和硬件加速装置的结构示意图;
[0043] 图4为本发明实施例的一种电子设备的结构示意图。

具体实施方式

[0044] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0045] 为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
[0046] 如图1所示,为本发明实施例提供的一种用于多任务神经网络的量化和硬件加速方法的实施流程示意图,该方法具体可以包括以下步骤:
[0047] S101,获取预设的多个多任务神经网络模型,其中,所述多个多任务神经网络模型包括的层数一致;
[0048] 在本发明实施例中,使用一组都使用VGG16作为主干的深度神经网络模型为例描述,三个模型的功能分别是物体检测、图像分类、语义分割。VGG16模型在2014年被提出,包括13个卷积层,3个全连接层和5个池化层。该模型自提出以来,在多种应用领域都取得了很好的效果。
[0049] 在确定了应用场景需求和训练所用数据集后,一个多任务神经网络的使用过程可以分为如下三个步骤:训练、离线量化、硬件推理。其中,训练过程与普通的单任务神经网络训练相同,因此不作详细描述。在得到三个模型的训练好的参数后,在离线量化阶段,主要完成两个具体实施步骤:共享权重提取和共享特征值分析。
[0050] S102,提取所述多个多任务神经网络模型中同一层的共享权重,生成对应权重码表,其中,所述权重码表包含所述共享权重;
[0051] 在本发明实施例中,提取所述多个多任务神经网络模型中同一层的所有权重,从所述权重中剔除重复权重,得到包含多个多任务神经网络模型中同一层的共享权重的权重码表。
[0052] 例如,将多个神经网络模型同一层的权重数值提取出来,去除重复值即可得到包含三个模型这一层权重的所有可能值的码表(codebook),即所有权重值都可以在码表中找到唯一的索引。
[0053] 由于前述多任务神经网络模型之间的相似性,可以通过聚类的方法将所有可能的权重值聚类到一些簇,并使用聚类中心代替这一簇中的所有权重值,可以在不明显降低神经网络模型精度的同时有效地缩小码表的长度。此时三个模型中这一层的权重值均可以表示为码表中某一项的索引,索引的长度由码表的大小决定,码表按照大小顺序离线排序。在共同训练的多任务神经网络中,会存在完全相同的卷积核,则这些卷积核表示成索引值后也是完全相同的,经过S102步骤后,这些完全相同的卷积核在片上只存储一次,节约片上存储空间,减少访存次数。
[0054] S103,获取所述多个多任务神经网络模型的训练样本,从所述训练样本中分析共享特征值,生成对应特征值码表,其中,所述特征值码表包含所述共享特征值;
[0055] 共享特征值分析的过程与权重类似,但是由于不同输入带来不同特征值,因此利用大量训练数据的共同特征得到特征值码表,将具体的特征值表示成索引的过程与输入相关,因此在加速器中实现。
[0056] S104,将所述多个多任务神经网络模型放入神经网络加速器硬件中,基于所述权重码表以及所述特征值码表对所述多个多任务神经网络模型进行加速。
[0057] 如图2所示,将训练好并离线量化好的模型放入神经网络加速器硬件中,当有图片输入时,加速器执行推理过程,得出三个网络的运行结果,以其中一层的推理过程为例,具体实施步骤如下:
[0058] 1、输入特征值在线量化,将输入的特征值与本层的输入特征值码表对应,找到特征值的索引表示。(只有第一层需要这一步骤,后续层的输入特征值在其前一层已经被表示成整数索引形式)
[0059] 2、在神经网络加速器的运算单元中,使用每一对需要对应位置相乘的输入的特征值索引和权重的特征值索引查找乘法结果复用表,如果这一对索引值在乘法结果复用表中,即使用复用表中这一项的乘法结果作为这一次乘法的输出。如果这一对索引值不在复用表中,则根据索引找到码表中的真实值,用真实值做乘法,再将一对索引和乘法结果数值存入复用表中。
[0060] 3、将累加结束的数值,即输出特征值,与输出码表项比对,将最接近的一项即输出特征值的索引输出,保存在存储单元中,完成一层的计算。
[0061] 通过上述对本发明实施例提供的技术方案的描述,通过协同量化来充分利用多任务神经网络中的模型相似性,通过训练时协同更新,得到一组可以充分表达多任务神经网络中的多个模型数据分布的量化参数,即量化参数共享。共享量化参数导致多任务神经网络中模型之间重复的参数可以只在片上存储一次,并在计算时同时发送给多个模型计算使用。由于多任务神经网络之间的功能相关,且同一时刻使用同样或相似的输入,相近位置的参数和特征通相似程度高,且使用同一组量化参数进行数据量化,因此在相近位置,相同的计算容易重复发生。因此,在神经网络加速器的运算阵列的每个运算单元中,加入乘法结果复用表,将刚刚被使用过的乘法运算的乘数、被乘数和乘法结果保存在复用表中,下一次运算时使用乘数与被乘数查询复用表,若表中有与之相同的计算过程,即可直接使用复用表中该项所保存的乘法结果,不需要使用乘法器计算。
[0062] 这种方法通过协同量化降低了神经网络中的模型参数量,减少神经网络加速器的存储系统开销,且共享的量化参数可以将多任务神经网络中的相似计算转化为相同计算,让多任务的计算过程产生了局部性,即刚出现过的计算,在短时间内又会再次出现,因此可以用低开销的查表操作代替高开销的乘法操作。
[0063] 本发明实施例提供的技术方案可以产生以下有益效果:
[0064] 用协同量化方法量化多任务神经网络模型,共享量化参数,进一步压缩模型大小;利用共享量化参数和多任务神经网络模型本身具有的相似性,设计高效的重用机制的神经网络加速器,消除多任务神经网络模型中的冗余计算,提高神经网络加速器完成多任务神经网络的速度并降低功耗。
[0065] 与上述方法实施例相对应,本发明实施例还提供了一种用于多任务神经网络的量化和硬件加速装置,如图3所示,所述装置包括:模型获取模块310、权重提取模块320、特征值分析模块330、模型加速模块340。
[0066] 模型获取模块310,用于获取预设的多个多任务神经网络模型,其中,所述多个多任务神经网络模型包括的层数一致;
[0067] 权重提取模块320,用于提取所述多个多任务神经网络模型中同一层的共享权重,生成对应权重码表,其中,所述权重码表包含所述共享权重;
[0068] 特征值分析模块330,用于获取所述多个多任务神经网络模型的训练样本,从所述训练样本中分析共享特征值,生成对应特征值码表,其中,所述特征值码表包含所述共享特征值;
[0069] 模型加速模块340,用于将所述多个多任务神经网络模型放入神经网络加速器硬件中,基于所述权重码表以及所述特征值码表对所述多个多任务神经网络模型进行加速。
[0070] 图4为本发明实施例提供的一种的电子设备的结构示意图,图4所示的电子设备400包括:至少一个处理器401、存储器402、至少一个网络接口404和其他用户接口403。移动终端400中的各个组件通过总线系统405耦合在一起。可理解,总线系统405用于实现这些组件之间的连接通信。总线系统405除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统405。
[0071] 其中,用户接口403可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
[0072] 可以理解,本发明实施例中的存储器402可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器(ProgrammableROM,PROM)、可擦除可编程只读存储器(ErasablePROM,EPROM)、电可擦除可编程只读存储器(ElectricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccessMemory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(StaticRAM,SRAM)、动态随机存取存储器(DynamicRAM,DRAM)、同步动态随机存取存储器(SynchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(DoubleDataRateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(SynchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambusRAM,DRRAM)。本文描述的存储器402旨在包括但不限于这些和任意其它适合类型的存储器。
[0073] 在一些实施方式中,存储器402存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统4021和应用程序4022。
[0074] 其中,操作系统4021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序4022,包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序4022中。
[0075] 在本发明实施例中,通过调用存储器402存储的程序或指令,具体的,可以是应用程序4022中存储的程序或指令,处理器401用于执行各方法实施例所提供的方法步骤,例如包括:获取预设的多个多任务神经网络模型,其中,所述多个多任务神经网络模型包括的层数一致;提取所述多个多任务神经网络模型中同一层的共享权重,生成对应权重码表,其中,所述权重码表包含所述共享权重;获取所述多个多任务神经网络模型的训练样本,从所述训练样本中分析共享特征值,生成对应特征值码表,其中,所述特征值码表包含所述共享特征值;将所述多个多任务神经网络模型放入神经网络加速器硬件中,基于所述权重码表以及所述特征值码表对所述多个多任务神经网络模型进行加速。
[0076] 上述本发明实施例揭示的方法可以应用于处理器401中,或者由处理器401实现。处理器401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器401可以是通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列
(FieldProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器402,处理器401读取存储器402中的信息,结合其硬件完成上述方法的步骤。
[0077] 可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecificIntegratedCircuits,ASIC)、数字信号处理器(DigitalSignalProcessing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(ProgrammableLogicDevice,PLD)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
[0078] 对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
[0079] 本实施例提供的电子设备可以是如图4中所示的电子设备,可执行如图1中用于多任务神经网络的量化和硬件加速的方法的所有步骤,进而实现图1所示用于多任务神经网络的量化和硬件加速的方法的技术效果,具体请参照图1相关描述,为简洁描述,在此不作赘述。
[0080] 本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
[0081] 当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在用于多任务神经网络的量化和硬件加速的设备侧执行的用于多任务神经网络的量化和硬件加速的方法。
[0082] 所述处理器用于执行存储器中存储的用于多任务神经网络的量化和硬件加速的程序,以实现以下在用于多任务神经网络的量化和硬件加速的设备侧执行的用于多任务神经网络的量化和硬件加速的方法的步骤:
[0083] 获取预设的多个多任务神经网络模型,其中,所述多个多任务神经网络模型包括的层数一致;提取所述多个多任务神经网络模型中同一层的共享权重,生成对应权重码表,其中,所述权重码表包含所述共享权重;获取所述多个多任务神经网络模型的训练样本,从所述训练样本中分析共享特征值,生成对应特征值码表,其中,所述特征值码表包含所述共享特征值;将所述多个多任务神经网络模型放入神经网络加速器硬件中,基于所述权重码表以及所述特征值码表对所述多个多任务神经网络模型进行加速。
[0084] 专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0085] 结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件系统,或者二者的结合来实施。软件系统可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0086] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。