一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

深度学习网络加速方法、装置、设备及存储介质与流程

2021-11-24 21:58:00 来源:中国专利 TAG:


1.本发明涉及人工智能的智能决策技术领域,尤其涉及一种深度学习网络加速方法、装置、设备及存储介质。


背景技术:

2.目前,随着人工智能的飞速发展,慢慢地渗入到各行各业,前期在耗费gpu的资源上对模型进行加速,然将其转入cpu端进行部署时,会因为cpu性能的问题,而导致各种时间的延迟。例如,有一些神经网络模型部署于智能终端的cpu中时,若神经网络模型在部署之前未充分考虑到其具体运行时对cpu资源的消耗程度,后续在实际模型运行进行各种运算的过程中,会导致cpu性能参数超标,从而导致各种结果反馈的延时,影响运算效率。


技术实现要素:

3.本发明实施例提供了一种深度学习网络加速方法、装置、设备及存储介质,旨在解决现有技术中神经网络模型在部署之前未充分考虑到其具体运行时对cpu资源的消耗程度,后续在实际模型运行进行各种运算的过程中,会导致cpu性能参数超标,使得各种结果反馈的延时,影响运算效率的问题。
4.第一方面,本发明实施例提供了一种深度学习网络加速方法,其包括:
5.获取已存储的训练集;其中,所述训练集中包括多个训练数据;
6.根据所述训练集对待训练基础模型进行训练,得到基础模型,并得到与所述基础模型对应的模型参数集;
7.获取已存储的校验集,通过所述校验集对所述基础模型进行模型校验,若所述基础模型通过模型校验,保存所述基础模型及对应的所述模型参数集;
8.获取已存储的测试集,将所述测试集输入至所述基础模型进行运算直至得到测试结果,并得到cpu测试参数集;
9.若确定所述cpu测试参数集中的测试总耗时超出预设的测试时长阈值,将所述基础模型对应的模型参数集及模型结构根据预设的模型调整策略进行调整,得到调整后基础模型,以调整后基础模型更新作为待训练基础模型,返回执行所述根据所述训练集对待训练基础模型进行模型训练,得到基础模型,并得到与所述基础模型对应的模型参数集的步骤;以及
10.若确定所述cpu测试参数集中的测试总耗时未超出预设的测试时长阈值,将所述基础模型发送至目的端进行部署。
11.第二方面,本发明实施例提供了一种深度学习网络加速装置,其包括:
12.训练集获取单元,用于获取已存储的训练集;其中,所述训练集中包括多个训练数据;
13.基础模型获取单元,用于根据所述训练集对待训练基础模型进行训练,得到基础模型,并得到与所述基础模型对应的模型参数集;
14.校验单元,用于获取已存储的校验集,通过所述校验集对所述基础模型进行模型校验,若所述基础模型通过模型校验,保存所述基础模型及对应的所述模型参数集;
15.测试结果获取单元,用于获取已存储的测试集,将所述测试集输入至所述基础模型进行运算直至得到测试结果,并得到cpu测试参数集;
16.模型调整单元,用于若确定所述cpu测试参数集中的测试总耗时超出预设的测试时长阈值,将所述基础模型对应的模型参数集及模型结构根据预设的模型调整策略进行调整,得到调整后基础模型,以调整后基础模型更新作为待训练基础模型,返回执行所述根据所述训练集对待训练基础模型进行模型训练,得到基础模型,并得到与所述基础模型对应的模型参数集的步骤;以及
17.模型发送单元,用于若确定所述cpu测试参数集中的测试总耗时未超出预设的测试时长阈值,将所述基础模型发送至目的端进行部署。
18.第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的深度学习网络加速方法。
19.第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的深度学习网络加速方法。
20.本发明实施例提供了一种深度学习网络加速方法、装置、设备及存储介质,是在确定所述cpu测试参数集中的测试总耗时超出预设的测试时长阈值时,将所述基础模型对应的模型参数集及模型结构根据预设的模型调整策略进行调整,采用模型压缩的方法,对模型进行一系列的参数、知识等进行压缩处理,减小生成模型的大小,实现了降低对cpu资源的消耗程度,反馈结果更加快速,而且提升了运算效率。
附图说明
21.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1为本发明实施例提供的深度学习网络加速方法的应用场景示意图;
23.图2为本发明实施例提供的深度学习网络加速方法的流程示意图;
24.图3为本发明实施例提供的深度学习网络加速装置的示意性框图;
25.图4为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
26.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整
体、步骤、操作、元素、组件和/或其集合的存在或添加。
28.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
29.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
30.请参阅图1和图2,图1为本发明实施例提供的深度学习网络加速方法的应用场景示意图;图2为本发明实施例提供的深度学习网络加速方法的流程示意图,该深度学习网络加速方法应用于服务器中,该方法通过安装于服务器中的应用软件进行执行。
31.如图2所示,该方法包括步骤s101~s106。
32.s101、获取已存储的训练集;其中,所述训练集中包括多个训练数据。
33.在本实施例中,为了更清楚的理解本技术的技术方案,下面对所涉及的执行主体进行详细介绍。本技术以服务器为执行主体来描述技术方案。
34.服务器,其中存储有训练集、校验集及测试集,通过训练集对待训练基础模型进行模型训练,所得到基础模型在预设的模型调整策略进行优化和模型瘦身后,输出满足cpu测试条件的调整后基础模型作为轻量模型。
35.目的端,其为用户所使用的智能终端(如智能手机等)或另一服务器,可接收服务器发送的经过优化和模型瘦身后的基础模型(具体为深度学习网络中的backbone模型),基于经过优化和模型瘦身后的基础模型可以使模型在精度损失不大的情况下,达到模型又小又快的效果。
36.其中,为了实现对基础模型的训练,在服务器本地需预先存储训练集、校验集及测试集,以实现后续对模型的训练、校验和测试。具体实施时,所述训练数据为文本类型数据、语音类型数据或图片类型数据,而且在整理准备相关的训练集(如文本、图片、语音等),还可进行数据筛选(例如存在有训练数据的多个字段取值中空值占比超出预设的空值占比阈值,则将对应的训练数据从训练集中删除),以控制数据质量。
37.s102、根据所述训练集对待训练基础模型进行训练,得到基础模型,并得到与所述基础模型对应的模型参数集。
38.在本实施例中,尤其是在神经网络的cv领域,一般先对图像进行特征提取(常见的有vggnet,resnet等),这一部分是整个cv任务的根基,因为后续的下游任务都是基于提取出来的图像特征去做分类或生成等。其中,基础模型为神经网络中的backbone模型,即基础模型可以理解为深度学习网络中的backbone模型,基础模型也可以理解为主干网络,用来做特征提取的网络,代表网络的一部分,例如基础网络一般是用于前端提取图片信息,生成特征图featuremap,供后面的网络使用。
39.在一实施例中,步骤s102包括:
40.根据所述训练集对待训练神经网络模型进行训练得到神经网络,将神经网络中的分类器进行移除得到基础模型。
41.在本实施例中,通过所述训练集对待训练基础模型进行模型训练,得到基础模型,也可以理解为对完整的神经网络进行训练得到神经网络模型,最终移除掉神经网络模型中全连接层之后所连接的分类器即得到基础模型。更具体的,以神经网络模型为卷积神经网
络模型为例,其包括卷积层、池化层、全连接层、分类器这些模型结果,当以训练集完成了对卷积神经网络模型的训练后,得到了卷积层、池化层、全连接层这些网络结构对应的模型参数,此时移除掉神经网络模型中的分类器后,剩余的模型参数组成了与所述基础模型对应的模型参数集。
42.s103、获取已存储的校验集,通过所述校验集对所述基础模型进行模型校验,若所述基础模型通过模型校验,保存所述基础模型及对应的所述模型参数集。
43.在本实施例中,对基础模型进行校验时,需判断校验集输入到所述基础模型进行测试后模型输出结果的正确率是否超出预设的正确率阈值,若模型输出结果的正确率超出预设的正确率阈值,则表示所述基础模型通过模型校验,保存所述基础模型及对应的所述模型参数集。
44.其中,在获取已存储的校验集时,也可以不是直接从服务器本地存储的校验集中获取,而是从训练集中随机挑选出一定比例的训练数据作为校验数据,从而对所述基础模型进行校验。
45.在一实施例中,步骤s103包括:
46.获取所述基础模型对应的神经网络;
47.将所述校验集中每一校验数据的输入数据部分输入至所述神经网络进行运算,得到与每一校验数据对应的预测输出结果;
48.将每一校验数据的输入数据部分与对应校验数据的预测输出结果进行比较,统计获取校验数据中具有相同输入数据部分和预测输出结果的目标校验数据,组成目标校验数据集;
49.获取目标校验数据集中目标校验数据对应的第一校验数据总条数,并获取所述校验集中校验数据对应的第二校验数据总条数,由所述第一校验数据总条数除以所述第二校验数据总条数得到验证通过率;
50.若确定所述验证通过率超出预设的正确率阈值,将所述基础模型增加验证通过的标识。
51.在本实施例中,对基础模型进行验证时,并不是直接对其进行验证,而是基于基础模型对应原始的神经网络进行验证,这是因为训练集、测试集、校验集这些数据集中每一条数据的标注值都是针对于神经网络的输出值,直接对原始的神经网络进行验证,也就是间接的对基础网络进行了验证。一旦确定由所述第一校验数据总条数除以所述第二校验数据总条数得到验证通过率超出正确率阈值(例如将正确率阈值设置为90%),此时则可判定所述基础模型通过验证并标识为验证通过
52.s104、获取已存储的测试集,将所述测试集输入至所述基础模型进行运算直至得到测试结果,并得到cpu测试参数集。
53.在本实施例中,为了判断当前获取的基础模型在gpu上进行测试时是否达到模型要求,最直观的测试指标是cpu测试参数集,其中所述cpu测试参数集至少包括测试总耗时,cpu平均运行温度、cpu平均运行功耗、cpu平均运行频率。也即在gpu上对所述基础模型进行运算直至得到测试结果后,也能获取这整个测试过程对应的测试总耗时,cpu平均运行温度、cpu平均运行功耗、cpu平均运行频率等cpu测试参数。一旦cpu测试参数集中有参数值超出对应预设的参数阈值,则表示该基础模型还有优化和瘦身的空间,需要进行下一步的模
型优化;若cpu测试参数集中没有参数值超出对应预设的参数阈值,则表示该基础模型无需进行优化和瘦身。
54.s105、若确定所述cpu测试参数集中的测试总耗时超出预设的测试时长阈值,将所述基础模型对应的模型参数集及模型结构根据预设的模型调整策略进行调整,得到调整后基础模型,以调整后基础模型更新作为待训练基础模型,返回执行所述根据所述训练集对待训练基础模型进行模型训练,得到基础模型,并得到与所述基础模型对应的模型参数集的步骤。
55.在本实施例中,对于模型的“瘦身”,主要有以下几种方法:1)参数修剪和共享(parameter pruning and sharing);2)低秩因子分解(low

rank factorization);3)转移/紧凑卷积滤波器(transferred/compact convolutional filters);4)知识蒸馏(knowledge distillation),也就是预先设置的模型调整策略可以是从上述4种方法中任意选取一种,在选定了模型调整策略后,即可将所述基础模型对应的模型参数集及模型结构根据预设的模型调整策略进行调整,得到调整后基础模型。之后即再对该优化后的调整后基础模型进行cpu测试,判断是否达到预设的优化效果。
56.在一实施例中,作为第一实施例,所述模型调整策略为参数修剪和共享优化策略,步骤s105包括:
57.将所述基础模型对应的模型结构中神经元贡献值为0的因子删除,得到调整后基础模型。
58.在本实施例中,网络剪枝和共享用于降低网络复杂度和解决过拟合问题。基础模型因其稀疏性,可以被裁剪为结构精简的网络模型,例如可进行结构性剪枝与非结构性剪枝。
59.具体在进行结构性剪枝时是利用bn(即批归一化层)中的缩放因子gamma作为评价上一层输出贡献大小(下层输入)的因子,即gamma越小,所对应的神经元越不重要,就可以裁剪掉。而且还可以利用l1正则化gamma,使其稀疏化,这样就可以在训练过程中自动评价神经元贡献大小,为0的因子可以安全剪掉。剪枝的基本流程是:1)衡量神经元的重要程度;2)移除一部分不重要的神经元;3)对网络进行微调;4)返回1)步骤,进行下一轮剪枝。
60.在一实施例中,作为第二实施例,所述模型调整策略为低秩因子分解优化策略,步骤s105包括:
61.将所述基础模型对应的模型结构中卷积层中k*k的卷积核由2个k*1的卷积核进行替换,得到调整后基础模型。
62.在本实施例中,低秩分解的目的是去除冗余,并且减少权值参数,其原理是权值向量主要分布在一些低秩子空间,用少数基来重构权值矩阵。具体实现是将卷积层中k*k的卷积核由2个k*1的卷积核进行替换。
63.其中,将基础模型对应的模型结构中的网络权值当满秩矩阵,可以用多个低秩矩阵来逼近该矩阵,从而降低时间复杂度。将卷积层中k*k的卷积核由2个k*1的卷积核进行替换具体是使用秩为1(可以分解为行向量与列向量乘积)的卷积核作用在输入图上产生相互独立的m个基本特征图,卷积神经网络大小为k*k的卷积核分解为2个k*1的卷积核,然后通过学习到的字典权重利用线性组合重构出输出特征图。
64.在一实施例中,作为第三实施例,所述模型调整策略为转移/紧凑卷积滤波器优化
策略,步骤s105包括:
65.将所述基础模型对应的模型结构中卷积层之后增加卷积滤波器,得到调整后基础模型。
66.在本实施例中,使用紧凑的卷积滤波器可以直接降低计算成本。在inception结构中使用了将3
×
3卷积分解成两个1
×
1的卷积;squeezenet提出用1
×
1卷积来代替3
×
3卷积,与alexnet相比,squeezenet创建了一个紧凑的神经网络,参数少了50倍,准确度相当。
67.在一实施例中,作为第四实施例,所述模型知识蒸馏优化策略,步骤s105包括:
68.获取所述基础模型作为教师模型;
69.获取知识蒸馏的温度参数;
70.将所述教师模型根据所述温度参数高温蒸馏至学生模型;
71.获取所述学生模型的模型参数集及模型结构,并以学生模型作为调整后基础模型。
72.在本实施例中,使用知识蒸馏技术,是将深度和宽度的网络压缩成较浅的网络,其中压缩模型模拟复杂模型所学习的功能,主要思想是通过学习通过softmax获得的类分布输出,将知识从一个大的模型转移到一个小的模型。
73.知识蒸馏压缩框架,即通过遵循“学生

教师”的范式减少深度网络的训练量,这种“学生

教师”的范式,即通过软化“教师”的输出而惩罚“学生”。为了完成这一点,学生学要训练以预测教师的输出,即真实的分类标签。
74.知识蒸馏是对模型的能力进行迁移,下面对其进行介绍。
75.所谓模型蒸馏就是将训练好的复杂模型推广能力“知识”迁移到一个结构更为简单的网络中。或者通过简单的网络去学习复杂模型中“知识”。其基本流程如下:
76.基本可以分为原始模型训练和精简模型训练两个阶段:
77.a1)原始模型训练包括:
78.a11)根据提出的目标问题,设计一个或多个复杂网络(n1,n2,

,nt);
79.a12)收集足够的训练数据,按照常规cnn模型训练流程,并行的训练1中的多个网络,得到(m1,m2,

,mt)
80.a2)精简模型训练包括:
81.a21)根据(n1,n2,

,nt)设计一个简单网络n0;
82.a22)收集简单模型训练数据,此处的训练数据可以是训练原始网络的有标签数据,也可以是额外的无标签数据;
83.a23)将a22)中收集到的样本输入原始模型(m1,m2,

,mt),修改原始模型softmax层中温度参数t为一个较大值如t=20。每一个样本在每个原始模型可以得到其最终的分类概率向量,选取其中概率至最大即为该模型对于当前样本的判定结果。对于t个原始模型就可以t概率向量。然后对t概率向量求取均值作为当前样本最后的概率输出向量,记为soft_target,保存。
84.a24)标签融合a22)中收集到的数据定义为hard_target,有标签数据的hard_target取值为其标签值1,无标签数据hard_taret取值为0。target=a*hard_target b*soft_target(a b=1)。target最终作为训练数据的标签去训练精简模型。参数a,b是用于控制标签融合权重的,推荐经验值为(a=0.1b=0.9);
85.a25)设置精简模型softmax层温度参数与原始复杂模型产生soft

target时所采用的温度,按照常规模型训练精简网络模型;
86.a26)部署时将精简模型中的softmax温度参数重置为1,即采用最原始的softmax。
87.通过上述过程即可实现将训练好的教师模型推广能力“知识”迁移到一个结构更为简单的学生模型中,从而完成知识蒸馏过程。
88.s106、若确定所述cpu测试参数集中的测试总耗时未超出预设的测试时长阈值,将所述基础模型发送至目的端进行部署。
89.在本实施例中,若确定所述cpu测试参数集中的测试总耗时未超出预设的测试时长阈值,表示当前的调整后基础模型已达到模型优化的要求,直接发送至目的端(即另一服务器或智能终端)上进行部署。
90.更具体的,当前对部署到计算机端的模型,采用量化的方法,将fp32/16的转化为int8对模型进行量化,从而可以在保证准确率的情况下,通过模型量化压缩,达到减少推断时间的效果。对于部署到手机cpu端的模型,在使用tensorflow训练的模型,转成tensorflowlite模型,达到压缩,并且加速的效果。
91.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
92.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
93.该方法在确定所述cpu测试参数集中的测试总耗时超出预设的测试时长阈值时,将所述基础模型对应的模型参数集及模型结构根据预设的模型调整策略进行调整,采用模型压缩的方法,对模型进行一系列的参数、知识等进行压缩处理,减小生成模型的大小,实现了降低对cpu资源的消耗程度,反馈结果更加快速,而且提升了运算效率。
94.本发明实施例还提供一种深度学习网络加速装置,该深度学习网络加速装置用于执行前述深度学习网络加速方法的任一实施例。具体地,请参阅图3,图3是本发明实施例提供的深度学习网络加速装置的示意性框图。该深度学习网络加速装置100可以配置于服务器中。
95.服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
96.如图3所示,深度学习网络加速装置100包括:训练集获取单元101、基础模型获取单元102、校验单元103、测试结果获取单元104、模型调整单元105、模型发送单元106。
97.训练集获取单元101,用于获取已存储的训练集;其中,所述训练集中包括多个训练数据。
98.在本实施例中,为了实现对基础模型的训练,在服务器本地需预先存储训练集、校验集及测试集,以实现后续对模型的训练、校验和测试。具体实施时,所述训练数据为文本
类型数据、语音类型数据或图片类型数据,而且在整理准备相关的训练集(如文本、图片、语音等),还可进行数据筛选(例如存在有训练数据的多个字段取值中空值占比超出预设的空值占比阈值,则将对应的训练数据从训练集中删除),以控制数据质量。
99.基础模型获取单元102,用于根据所述训练集对待训练基础模型进行训练,得到基础模型,并得到与所述基础模型对应的模型参数集。
100.在本实施例中,尤其是在神经网络的cv领域,一般先对图像进行特征提取(常见的有vggnet,resnet等),这一部分是整个cv任务的根基,因为后续的下游任务都是基于提取出来的图像特征去做分类或生成等。即基础模型可以理解为深度学习网络中的backbone模型,基础模型也可以理解为主干网络,用来做特征提取的网络,代表网络的一部分,例如基础网络一般是用于前端提取图片信息,生成特征图feature map,供后面的网络使用。
101.在一实施例中,基础模型获取单元102还用于:
102.根据所述训练集对待训练神经网络模型进行训练得到神经网络,将神经网络中的分类器进行移除得到基础模型。
103.在本实施例中,通过所述训练集对待训练基础模型进行模型训练,得到基础模型,也可以理解为对完整的神经网络进行训练得到神经网络模型,最终移除掉神经网络模型中全连接层之后所连接的分类器即得到基础模型。更具体的,以神经网络模型为卷积神经网络模型为例,其包括卷积层、池化层、全连接层、分类器这些模型结果,当以训练集完成了对卷积神经网络模型的训练后,得到了卷积层、池化层、全连接层这些网络结构对应的模型参数,此时移除掉神经网络模型中的分类器后,剩余的模型参数组成了与所述基础模型对应的模型参数集。
104.校验单元103,用于获取已存储的校验集,通过所述校验集对所述基础模型进行模型校验,若所述基础模型通过模型校验,保存所述基础模型及对应的所述模型参数集。
105.在本实施例中,对基础模型进行校验时,需判断校验集输入到所述基础模型进行测试后模型输出结果的正确率是否超出预设的正确率阈值,若模型输出结果的正确率超出预设的正确率阈值,则表示所述基础模型通过模型校验,保存所述基础模型及对应的所述模型参数集。
106.其中,在获取已存储的校验集时,也可以不是直接从服务器本地存储的校验集中获取,而是从训练集中随机挑选出一定比例的训练数据作为校验数据,从而对所述基础模型进行校验。
107.在一实施例中,校验单元103包括:
108.基础模型网络获取单元,用于获取所述基础模型对应的神经网络;
109.预测输出结果获取单元,用于将所述校验集中每一校验数据的输入数据部分输入至所述神经网络进行运算,得到与每一校验数据对应的预测输出结果;
110.结果比较单元,用于将每一校验数据的输入数据部分与对应校验数据的预测输出结果进行比较,统计获取校验数据中具有相同输入数据部分和预测输出结果的目标校验数据,组成目标校验数据集;
111.验证通过率获取单元,用于获取目标校验数据集中目标校验数据对应的第一校验数据总条数,并获取所述校验集中校验数据对应的第二校验数据总条数,由所述第一校验数据总条数除以所述第二校验数据总条数得到验证通过率;
112.验证通过标记单元,用于若确定所述验证通过率超出预设的正确率阈值,将所述基础模型增加验证通过的标识。
113.在本实施例中,对基础模型进行验证时,并不是直接对其进行验证,而是基于基础模型对应原始的神经网络进行验证,这是因为训练集、测试集、校验集这些数据集中每一条数据的标注值都是针对于神经网络的输出值,直接对原始的神经网络进行验证,也就是间接的对基础网络进行了验证。一旦确定由所述第一校验数据总条数除以所述第二校验数据总条数得到验证通过率超出正确率阈值(例如将正确率阈值设置为90%),此时则可判定所述基础模型通过验证并标识为验证通过
114.测试结果获取单元104,用于获取已存储的测试集,将所述测试集输入至所述基础模型进行运算直至得到测试结果,并得到cpu测试参数集。
115.在本实施例中,为了判断当前获取的基础模型在gpu上进行测试时是否达到模型要求,最直观的测试指标是cpu测试参数集,也即在gpu上对所述基础模型进行运算直至得到测试结果后,也能获取这整个测试过程对应的测试总耗时,cpu平均运行温度、cpu平均运行功耗、cpu平均运行频率等cpu测试参数。一旦cpu测试参数集中有参数值超出对应预设的参数阈值,则表示该基础模型还有优化和瘦身的空间,需要进行下一步的模型优化;若cpu测试参数集中没有参数值超出对应预设的参数阈值,则表示该基础模型无需进行优化和瘦身。
116.模型调整单元105,用于若确定所述cpu测试参数集中的测试总耗时超出预设的测试时长阈值,将所述基础模型对应的模型参数集及模型结构根据预设的模型调整策略进行调整,得到调整后基础模型,以调整后基础模型更新作为待训练基础模型,返回执行所述根据所述训练集对待训练基础模型进行模型训练,得到基础模型,并得到与所述基础模型对应的模型参数集的步骤。
117.在本实施例中,对于模型的“瘦身”,主要有以下几种方法:1)参数修剪和共享(parameter pruning and sharing);2)低秩因子分解(low

rank factorization);3)转移/紧凑卷积滤波器(transferred/compact convolutional filters);4)知识蒸馏(knowledge distillation),也就是预先设置的模型调整策略可以是从上述4种方法中任意选取一种,在选定了模型调整策略后,即可将所述基础模型对应的模型参数集及模型结构根据预设的模型调整策略进行调整,得到调整后基础模型。之后即再对该优化后的调整后基础模型进行cpu测试,判断是否达到预设的优化效果。
118.在一实施例中,作为第一实施例,所述模型调整策略为参数修剪和共享优化策略,所述模型调整单元105还用于:
119.将所述基础模型对应的模型结构中神经元贡献值为0的因子删除,得到调整后基础模型。
120.在本实施例中,网络剪枝和共享用于降低网络复杂度和解决过拟合问题。基础模型因其稀疏性,可以被裁剪为结构精简的网络模型,例如可进行结构性剪枝与非结构性剪枝。
121.具体在进行结构性剪枝时是利用bn(即批归一化层)中的缩放因子gamma作为评价上一层输出贡献大小(下层输入)的因子,即gamma越小,所对应的神经元越不重要,就可以裁剪掉。而且还可以利用l1正则化gamma,使其稀疏化,这样就可以在训练过程中自动评价
神经元贡献大小,为0的因子可以安全剪掉。剪枝的基本流程是:1)衡量神经元的重要程度;2)移除一部分不重要的神经元;3)对网络进行微调;4)返回1)步骤,进行下一轮剪枝。
122.在一实施例中,作为第二实施例,所述模型调整策略为低秩因子分解优化策略,所述模型调整单元105还用于:
123.将所述基础模型对应的模型结构中卷积层中k*k的卷积核由2个k*1的卷积核进行替换,得到调整后基础模型。
124.在本实施例中,低秩分解的目的是去除冗余,并且减少权值参数,其原理是权值向量主要分布在一些低秩子空间,用少数基来重构权值矩阵。具体实现是将卷积层中k*k的卷积核由2个k*1的卷积核进行替换。
125.其中,将基础模型对应的模型结构中的网络权值当满秩矩阵,可以用多个低秩矩阵来逼近该矩阵,从而降低时间复杂度。将卷积层中k*k的卷积核由2个k*1的卷积核进行替换具体是使用秩为1(可以分解为行向量与列向量乘积)的卷积核作用在输入图上产生相互独立的m个基本特征图,卷积神经网络大小为k*k的卷积核分解为2个k*1的卷积核,然后通过学习到的字典权重利用线性组合重构出输出特征图。
126.在一实施例中,作为第三实施例,所述模型调整策略为转移/紧凑卷积滤波器优化策略,所述模型调整单元105还用于:
127.将所述基础模型对应的模型结构中卷积层之后增加卷积滤波器,得到调整后基础模型。
128.在本实施例中,使用紧凑的卷积滤波器可以直接降低计算成本。在inception结构中使用了将3
×
3卷积分解成两个1
×
1的卷积;squeezenet提出用1
×
1卷积来代替3
×
3卷积,与alexnet相比,squeezenet创建了一个紧凑的神经网络,参数少了50倍,准确度相当。
129.在一实施例中,作为第四实施例,所述模型知识蒸馏优化策略,所述模型调整单元105还包括:
130.教师模型获取单元,用于获取所述基础模型作为教师模型;
131.温度参数获取单元,用于获取知识蒸馏的温度参数;
132.知识蒸馏单元,用于将所述教师模型根据所述温度参数高温蒸馏至学生模型;
133.学生模型获取单元,用于获取所述学生模型的模型参数集及模型结构,并以学生模型作为调整后基础模型。
134.在本实施例中,使用知识蒸馏技术,是将深度和宽度的网络压缩成较浅的网络,其中压缩模型模拟复杂模型所学习的功能,主要思想是通过学习通过softmax获得的类分布输出,将知识从一个大的模型转移到一个小的模型。
135.知识蒸馏压缩框架,即通过遵循“学生

教师”的范式减少深度网络的训练量,这种“学生

教师”的范式,即通过软化“教师”的输出而惩罚“学生”。为了完成这一点,学生学要训练以预测教师的输出,即真实的分类标签。
136.知识蒸馏是对模型的能力进行迁移,下面对其进行介绍。
137.所谓模型蒸馏就是将训练好的复杂模型推广能力“知识”迁移到一个结构更为简单的网络中。或者通过简单的网络去学习复杂模型中“知识”。其基本流程如下:
138.基本可以分为原始模型训练和精简模型训练两个阶段:
139.a1)原始模型训练包括:
140.a11)根据提出的目标问题,设计一个或多个复杂网络(n1,n2,

,nt);
141.a12)收集足够的训练数据,按照常规cnn模型训练流程,并行的训练1中的多个网络,得到(m1,m2,

,mt)
142.a2)精简模型训练包括:
143.a21)根据(n1,n2,

,nt)设计一个简单网络n0;
144.a22)收集简单模型训练数据,此处的训练数据可以是训练原始网络的有标签数据,也可以是额外的无标签数据;
145.a23)将a22)中收集到的样本输入原始模型(m1,m2,

,mt),修改原始模型softmax层中温度参数t为一个较大值如t=20。每一个样本在每个原始模型可以得到其最终的分类概率向量,选取其中概率至最大即为该模型对于当前样本的判定结果。对于t个原始模型就可以t概率向量。然后对t概率向量求取均值作为当前样本最后的概率输出向量,记为soft_target,保存。
146.a24)标签融合a22)中收集到的数据定义为hard_target,有标签数据的hard_target取值为其标签值1,无标签数据hard_taret取值为0。target=a*hard_target b*soft_target(a b=1)。target最终作为训练数据的标签去训练精简模型。参数a,b是用于控制标签融合权重的,推荐经验值为(a=0.1b=0.9);
147.a25)设置精简模型softmax层温度参数与原始复杂模型产生soft

target时所采用的温度,按照常规模型训练精简网络模型;
148.a26)部署时将精简模型中的softmax温度参数重置为1,即采用最原始的softmax。
149.通过上述过程即可实现将训练好的教师模型推广能力“知识”迁移到一个结构更为简单的学生模型中,从而完成知识蒸馏过程。
150.模型发送单元106,用于若确定所述cpu测试参数集中的测试总耗时未超出预设的测试时长阈值,将所述基础模型发送至目的端进行部署。
151.在本实施例中,若确定所述cpu测试参数集中的测试总耗时未超出预设的测试时长阈值,表示当前的调整后基础模型已达到模型优化的要求,直接发送至目的端(即另一服务器或智能终端)上进行部署。
152.更具体的,当前对部署到计算机端的模型,采用量化的方法,将fp32/16的转化为int8对模型进行量化,从而可以在保证准确率的情况下,通过模型量化压缩,达到减少推断时间的效果。对于部署到手机cpu端的模型,在使用tensorflow训练的模型,转成tensorflow lite模型,达到压缩,并且加速的效果。
153.该装置在确定所述cpu测试参数集中的测试总耗时超出预设的测试时长阈值时,将所述基础模型对应的模型参数集及模型结构根据预设的模型调整策略进行调整,采用模型压缩的方法,对模型进行一系列的参数、知识等进行压缩处理,减小生成模型的大小,实现了降低对cpu资源的消耗程度,反馈结果更加快速,而且提升了运算效率。
154.上述深度学习网络加速装置可以实现为计算机程序的形式,该计算机程序可以在如图4所示的计算机设备上运行。
155.请参阅图4,图4是本发明实施例提供的计算机设备的示意性框图。该计算机设备500是服务器,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
156.参阅图4,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网
络接口505,其中,存储器可以包括存储介质503和内存储器504。
157.该存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行深度学习网络加速方法。
158.该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
159.该内存储器504为存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行深度学习网络加速方法。
160.该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图4中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
161.其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现本发明实施例公开的深度学习网络加速方法。
162.本领域技术人员可以理解,图4中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图4所示实施例一致,在此不再赘述。
163.应当理解,在本发明实施例中,处理器502可以是中央处理单元(central processing unit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
164.在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,也可以为易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本发明实施例公开的深度学习网络加速方法。
165.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
166.在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些
特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
167.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
168.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
169.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、磁碟或者光盘等各种可以存储程序代码的介质。
170.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献