1.本技术涉及人工智能技术领域,尤其涉及一种深度神经网络的压缩方法、装置、电子设备及介质。
背景技术:2.随着深度学习技术迅速发展,神经网络技术被广泛应用到图像识别、图像分割和目标跟踪等计算机视觉任务中。为了追求性能的提升,现有的神经网络设计越来越宽和越深,因为越多参数量的网络往往表现得越好。更大的神经网络对计算资源提出了更大的计算需求,但更大的神经网络对于低存储、低功耗的硬件平台并不友好,从而限制了神经网络的应用。现有技术中,通过神经网络剪枝技术、神经网络的量化技术对神经网络进行压缩。传统的神经网络压缩流程中,剪枝和量化是按照先后顺序进行的,先对神经网络进行剪枝,压缩到足够小之后,再对压缩好的神经网络进行量化,然后进行部署。这种方式可能带来大幅度的性能损失,对神经网络的压缩效果比较差。
技术实现要素:3.为了解决上述技术问题,本技术实施例提供了一种深度神经网络的压缩方法、装置、电子设备及介质。
4.第一方面,本技术实施例提供了一种深度神经网络的压缩方法,所述方法包括:
5.步骤s1,对带量化节点的深度神经网络模型进行矫正,确定权重的量化步长,根据所述量化步长调整所述带量化节点的深度神经网络模型,得到矫正后的深度神经网络模型;
6.步骤s2,对所述矫正后的深度神经网络模型进行敏感度分析,得到所述矫正后的深度神经网络模型的各层卷积层敏感度;
7.步骤s3,根据所述各层卷积层敏感度确定对应的各层卷积层剪枝比例;
8.步骤s4,分析所述矫正后的深度神经网络模型的拓扑连接关系,按照预设连接关系将所述矫正后的深度神经网络模型的多个卷积层划分为一组卷积层,根据所述一组卷积层对应的卷积层剪枝比例剪去所述一组卷积层中卷积层对应的通道数量,得到剪枝后的深度神经网络模型;
9.步骤s5,对所述剪枝后的深度神经网络模型进行量化感知训练,直至量化后的深度神经网络模型的性能恢复到预设需求性能,得到剪枝量化后的深度神经网络模型;
10.步骤s6,判断所述剪枝量化后的深度神经网络模型是否达到预设量化条件;
11.步骤s7,若所述剪枝量化后的深度神经网络模型达到预设量化条件,则导出所述剪枝量化后的深度神经网络模型。
12.在一实施方式中,所述方法还包括:
13.步骤s8,若所述剪枝量化后的深度神经网络模型未达到预设量化条件,则返回执行步骤s1。
14.在一实施方式中,所述预设量化条件包括权重参数压缩到预设数量,或者,量化后的深度神经网络模型无法恢复到预设要求精度,所述步骤s6,判断所述剪枝量化后的深度神经网络模型是否达到预设量化条件,包括:
15.判断所述剪枝量化后的深度神经网络模型的权重参数的数量是否压缩到所述预设数量;或者,
16.判断所述剪枝量化后的深度神经网络模型是否无法恢复到所述预设要求精度。
17.在一实施方式中,所述带量化节点的深度神经网络模型的获取的步骤,包括:
18.步骤s0,在初始深度神经网络模型中插入虚拟量化节点,得到所述带量化节点的深度神经网络模型。
19.在一实施方式中,所述步骤s2,对所述矫正后的深度神经网络模型进行敏感度分析,得到所述矫正后的深度神经网络模型的各层卷积层敏感度,包括:
20.步骤s21,对所述矫正后的深度神经网络模型加载训练好的模型权重,测试得到所述矫正后的深度神经网络模型的性能;
21.步骤s22,对所述矫正后的深度神经网络模型的第i层卷积层按照顺序分别剪去多个预设比例的通道数量,得到多个剪枝后的深度神经网络模型,测试得到各所述剪枝后的神经网络模型的性能,其中,1≤i≤n,i为整数,n为所述矫正后的深度神经网络模型的卷积层层数;
22.步骤s23,根据所述矫正后的深度神经网络模型的性能和各所述剪枝后的神经网络模型的性能确定各所述剪枝后的神经网络模型的各层卷积层损失性能;
23.步骤s24,根据各所述剪枝后的神经网络模型的各层卷积层损失性能确定各层卷积层敏感度。
24.在一实施方式中,各层卷积层损失性能与各层卷积层敏感度存在正相关关系,各层卷积层敏感度与各层卷积层剪枝比例存在反相关关系。
25.在一实施方式中,对于相邻连接的两层卷积层,相邻前一层卷积层的输出通道和相邻后一层卷积层的输入通道的数量相同,所述方法还包括:
26.若剪枝过程中减小相邻前一层卷积层的输出通道数量,则同步减小相邻后一层卷积层的输入通道数量。
27.第二方面,本技术实施例提供了一种深度神经网络的压缩装置,所述装置包括:
28.矫正模块,用于对带量化节点的深度神经网络模型进行矫正,确定权重的量化步长,根据所述量化步长调整所述带量化节点的深度神经网络模型,得到矫正后的深度神经网络模型;
29.分析模块,用于对所述矫正后的深度神经网络模型进行敏感度分析,得到所述矫正后的深度神经网络模型的各层卷积层敏感度;
30.确定模块,用于根据所述各层卷积层敏感度确定对应的各层卷积层剪枝比例;
31.剪枝模块,用于分析所述矫正后的深度神经网络模型的拓扑连接关系,按照预设连接关系将所述矫正后的深度神经网络模型的多个卷积层划分为一组卷积层,根据所述一组卷积层对应的卷积层剪枝比例剪去所述一组卷积层中卷积层对应的通道数量,得到剪枝后的深度神经网络模型;
32.量化模块,用于对所述剪枝后的深度神经网络模型进行量化感知训练,直至量化
后的深度神经网络模型的性能恢复到预设需求性能,得到剪枝量化后的深度神经网络模型;
33.判断模块,用于判断所述剪枝量化后的深度神经网络模型是否达到预设量化条件;
34.导出模块,用于若所述剪枝量化后的深度神经网络模型达到预设量化条件,则导出所述剪枝量化后的深度神经网络模型。
35.第三方面,本技术实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述计算机程序在所述处理器运行时执行第一方面提供的深度神经网络的压缩方法。
36.第四方面,本技术实施例提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行第一方面提供的深度神经网络的压缩方法。
37.上述本技术提供的深度神经网络的压缩方法、装置、电子设备及介质,将剪枝和量化感知训练相结合,先在深度神经网络模型中插入量化节点,然后再对量化后的深度神经网络模型进行剪枝和量化感知训练,然后再迭代进行量化和剪枝,使得剪枝过程中考虑到量化策略的影响,从而达到剪枝量化后的深度神经网络模型能维持在要求的性能范围内,降低深度神经网络模型在剪枝量化过程中的性能损失,提高神经网络的压缩效果。
附图说明
38.为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对本技术保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
39.图1示出了本技术实施例提供的深度神经网络的压缩方法的一流程示意图;
40.图2示出了本技术实施例提供的深度神经网络的压缩方法的另一流程示意图;
41.图3示出了本技术实施例提供的深度神经网络的压缩装置的一结构示意图。
具体实施方式
42.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。
43.通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
44.在下文中,可在本技术的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
45.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
46.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本技术的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本技术的各种实施例中被清楚地限定。
47.现有技术中,通过神经网络剪枝技术、神经网络的量化技术对神经网络进行压缩。传统的神经网络压缩流程中,剪枝和量化是按照先后顺序进行的,先对神经网络进行剪枝,压缩到足够小之后,再对压缩好的神经网络进行量化,然后进行部署。
48.神经网络剪枝技术是一种压缩神经网络参数量、减少计算量的方案,使原来消耗巨大计算资源的神经网络减小数倍甚至数十倍的内存占用与资源消耗,提高其运行速度,同时还能维持性能损失在可接受范围内。
49.神经网络的量化也是一种压缩神经网络的方案,与剪枝不同的是,剪枝通过减少神经网络中冗余的参数量来压缩模型,而量化则是将神经网络中的参数从浮点类型转化为占用资源更少的整形,从而压缩模型的大小。除了压缩模型大小的目的以外,有的计算设备只支持整形运算,所以必须要进行量化。由于量化后存在计算精度的损失,神经网络的性能也会有一定的损失。性能损失的大小与网络本身的冗余度有关,冗余度高的网络量化后的损失往往会比较小,而冗余度低的网络由于对参数的变化更敏感,量化后的损失会更大。
50.由于剪枝过程已经减小了网络的冗余度,从而量化后可能会带来比剪枝前更大的性能损失。即使使用量化感知训练,也由于网络的冗余度过低从而无法训练到可接受范围的性能。另外,剪枝过程中需要做敏感度分析,从而确定每一层卷积的剪枝比例。但是对于浮点模型和量化模型来说,两者相同层的敏感度可能并不一样,使用浮点模型的权重来确定敏感度,在量化模型上不一定能得到最准确的结果。传统的神经网络压缩流程中可能带来大幅度的性能损失,对神经网络的压缩效果比较差。
51.实施例1
52.本公开实施例提供了一种深度神经网络的压缩方法。
53.具体的,参见图1,深度神经网络的压缩方法包括:
54.步骤s1,对带量化节点的深度神经网络模型进行矫正,确定权重的量化步长,根据所述量化步长调整所述带量化节点的深度神经网络模型,得到矫正后的深度神经网络模型。
55.需要说明的是,除了量化步长,还可以确定其他量化参数,具体的可以使用不同的量化策略确定各类量化参数,所采用的量化策略与硬件相关。
56.在一实施方式中,所述带量化节点的深度神经网络模型的获取的步骤,包括:
57.步骤s0,在初始深度神经网络模型中插入虚拟量化节点,得到所述带量化节点的深度神经网络模型。
58.需要说明的是,步骤s0可以理解为用浮点数模拟整形的量化运算过程。
59.步骤s2,对所述矫正后的深度神经网络模型进行敏感度分析,得到所述矫正后的深度神经网络模型的各层卷积层敏感度。
60.在一实施方式中,步骤s2可以包括以下步骤:
61.步骤s21,对所述矫正后的深度神经网络模型加载训练好的模型权重,测试得到所
述矫正后的深度神经网络模型的性能;
62.步骤s22,对所述矫正后的深度神经网络模型的第i层卷积层按照顺序分别剪去多个预设比例的通道数量,得到多个剪枝后的深度神经网络模型,测试得到各所述剪枝后的神经网络模型的性能,其中,1≤i≤n,i为整数,n为所述矫正后的深度神经网络模型的卷积层层数;
63.步骤s23,根据所述矫正后的深度神经网络模型的性能和各所述剪枝后的神经网络模型的性能确定各所述剪枝后的神经网络模型的各层卷积层损失性能;
64.步骤s24,根据各所述剪枝后的神经网络模型的各层卷积层损失性能确定各层卷积层敏感度。
65.具体的,若某一层卷积层损失性能越大,其对应的该层卷积层敏感度越大。这样,可以有效表征损失性能越大,说明剪枝后对模型影响越大,敏感度也就越大。若某一层卷积层敏感度越大,其对应的该层卷积层剪枝比例越小。这样,可以对敏感度较大的卷积层设置较小的剪枝比例,降低剪枝对模型的影响。
66.下面对各层卷积层敏感度的计算过程进行举例说明。步骤s101,对所述矫正后的深度神经网络模型加载训练好的模型权重,测试得到所述矫正后的深度神经网络模型的性能,记为p。步骤s102,对所述矫正后的深度神经网络模型的第一层卷积层,分别按照顺序减去10%、20%、...、90%的通道数量,得到多个剪枝后的深度神经网络模型,直接分别对各个剪枝后的深度神经网络模型进行性能测试,得到多个性能,分别记为p_0_1、p_0_2、
…
、p_i_j、....、p_0_9,p_i_j表示敏感度分析过程中,第i层卷积剪去比例j后的性能。步骤s103,在所述矫正后的深度神经网络模型的基础上,重复步骤步骤s102,分析第i层卷积层,直到分析完所有的卷积层,1≤i≤n,i为整数,n为所述矫正后的深度神经网络模型的卷积层层数。步骤s104,生成一张n
×
9大小的表格,n为卷积层的数量,各表格的数值为p-p_i_j的差值,该差值也就是剪枝后损失的性能,剪枝后损失的性能越大表示该层越敏感。步骤s105,最后根据敏感度分析的结果,可以决定每一层卷积层合适的剪枝比例。需要说明的是,步骤s101-步骤s105未在附图中示出。
67.步骤s3,根据所述各层卷积层敏感度确定对应的各层卷积层剪枝比例。
68.在一实施方式中,各层卷积层损失性能与各层卷积层敏感度存在正相关关系,各层卷积层敏感度与各层卷积层剪枝比例存在反相关关系。
69.步骤s4,分析所述矫正后的深度神经网络模型的拓扑连接关系,按照预设连接关系将所述矫正后的深度神经网络模型的多个卷积层划分为一组卷积层,根据所述一组卷积层对应的卷积层剪枝比例剪去所述一组卷积层中卷积层对应的通道数量,得到剪枝后的深度神经网络模型。
70.示范性的,分析深度神经网络模型的拓扑连接,将有特殊连接的卷积分为一组,例如,将张量加操作(element-wise add),张量乘操作(element-wise mul)和全连接层(concat)的卷积层划分为一组卷积层,并根据剪枝比例虚拟地剪去每一层对应的通道数量,虚拟剪去可以理解为将对应卷积通道的权重置为0,分为一组的卷积需要剪去同样数量的通道数量。
71.在一实施方式中,对于相邻连接的两层卷积层,相邻前一层卷积层的输出通道和相邻后一层卷积层的输入通道的数量相同,所述方法还包括:
72.若剪枝过程中减小相邻前一层卷积层的输出通道数量,则同步减小相邻后一层卷积层的输入通道数量。
73.在本实施例中,通过剪去卷积层中的通道数量,从而达到压缩模型参数量和计算量的效果。
74.需要说明的是,一个卷积层的参数量由输入通道数ci,输出通道数co,卷积核大小k共三个数值决定,参数量为ci
×
co
×k×
k,剪枝则是减小输出通道数co的大小。对于两层相连接的卷积层,假设分别为卷积层1和卷积层2,卷积层1的输出通道数co_1和卷积层2的输入通道数ci_2是必须要一致的,剪枝过程中减小输出通道数co_1的大小,然后也要同步减小卷积层2的输入通道数ci_2的大小。
75.步骤s5,对所述剪枝后的深度神经网络模型进行量化感知训练,直至量化后的深度神经网络模型的性能恢复到预设需求性能,得到剪枝量化后的深度神经网络模型。
76.在本实施例中,量化感知训练可以理解为通过将原模型中权重的浮点表示转化为整形表示来节省空间和加速。例如,浮点数占用的字节数为4bytes,整形占用空间为1byte,计算效率也有很大区别,不同的量化策略也会得到不同的量化效果。
77.步骤s6,判断所述剪枝量化后的深度神经网络模型是否达到预设量化条件。
78.在一实施方式中,所述预设量化条件包括权重参数压缩到预设数量,或者,量化后的深度神经网络模型无法恢复到预设要求精度,所述步骤s6,判断所述剪枝量化后的深度神经网络模型是否达到预设量化条件,包括:
79.判断所述剪枝量化后的深度神经网络模型的权重参数的数量是否压缩到所述预设数量;或者,
80.判断所述剪枝量化后的深度神经网络模型是否无法恢复到所述预设要求精度。
81.在一实施方式中,若所述剪枝量化后的深度神经网络模型的权重参数的数量权重参数的数量压缩到所述预设数量,表明模型压缩到足够小,则确定所述剪枝量化后的深度神经网络模型达到预设量化条件。若所述剪枝量化后的深度神经网络模型的权重参数的数量未压缩到所述预设数量,则确定所述剪枝量化后的深度神经网络模型未达到预设量化条件。其中,预设数量可以根据深度神经网络模型的实际应用场景进行设定。需要说明的是,可以根据用户自定义判断标准对权重参数的数量需要压缩到的程度进行设置,即用户自定义剪枝量化后的深度神经网络模型的权重参数的数量需要压缩到相应的预设数量,例如,可以设置为压缩到原模型的参数量的20%。
82.在另一实施方式中,若所述剪枝量化后的深度神经网络模型无法恢复到所述预设要求精度,则确定所述剪枝量化后的深度神经网络模型达到预设量化条件。若所述剪枝量化后的深度神经网络模型能够恢复到所述预设要求精度,则确定所述剪枝量化后的深度神经网络模型未达到预设量化条件。其中,预设要求精度可以根据深度神经网络模型实际应用场景进行设定。需要说明的是,预设要求精度是以原来的深度神经网络模型为基准进行比较的值,可以为用户自定义设置的精度值。例如,预设要求精度不低于原来的深度神经网络模型的精度减去0.02。举例来说,若原来的深度神经网络模型的精度为0.90,则压缩后的精度为0.88。
83.步骤s7,若所述剪枝量化后的深度神经网络模型达到预设量化条件,则导出所述剪枝量化后的深度神经网络模型。
84.在一实施方式中,所述深度神经网络的压缩方法还包括:
85.步骤s8,若所述剪枝量化后的深度神经网络模型未达到预设量化条件,则返回执行步骤s1。
86.需要说明的是,返回执行步骤s1时,需要更新量化步长,基于更新后量化步长执行步骤s1。
87.请参阅图2,下面结合图2对本实施例提供的深度神经网络的压缩方法的实现流程进行举例说明。
88.步骤s201,在初始深度神经网络模型中插入虚拟量化节点。
89.具体的,在初始深度神经网络模型中插入虚拟量化节点,得到所述带量化节点的深度神经网络模型。
90.步骤s202,对带量化节点的深度神经网络模型进行矫正。
91.具体的,对带量化节点的深度神经网络模型进行矫正,确定权重的量化步长,根据所述量化步长调整所述带量化节点的深度神经网络模型,得到矫正后的深度神经网络模型。
92.步骤s203,对矫正后的深度神经网络模型进行敏感度分析,得到各层卷积层的敏感度。
93.具体的,在敏感度分析后,得到所述矫正后的深度神经网络模型的各层卷积层敏感度。
94.步骤s204,根据敏感度分析确定各层卷积层的剪枝比例。
95.具体的,各层卷积层损失性能与各层卷积层敏感度存在正相关关系,各层卷积层敏感度与各层卷积层剪枝比例存在反相关关系。
96.步骤s205,根据剪枝比例减去各层卷积层对应的通道数量。
97.具体,根据剪枝比例减去各层卷积层对应的通道数量,得到剪枝后的深度神经网络模型。
98.步骤s206,对剪枝后的模型进行量化感知训练。
99.具体的,在量化感知训练过程中,持续训练,直至量化后的深度神经网络模型的性能恢复到预设需求性能,得到剪枝量化后的深度神经网络模型。
100.步骤s207,判断剪枝量化后的深度神经网络模型是否压缩到足够小或者无法恢复到要求的精度。
101.在一实施方式中,若模型压缩到足够小或者无法恢复到要求的精度,则执行步骤s208,若模型未压缩到足够小或者能够恢复到要求的精度,则返回执行步骤s202。
102.步骤s208,导出剪枝量化后的真实模型。
103.具体的,可以导出步骤s207生成的剪枝量化后的深度神经网络模型。
104.本实施例提供的深度神经网络的压缩方法,将剪枝和量化感知训练相结合,先在深度神经网络模型中插入量化节点,然后再对量化后的深度神经网络模型进行剪枝和量化感知训练,然后再迭代进行量化和剪枝,使得剪枝过程中考虑到量化策略的影响,从而达到剪枝量化后的深度神经网络模型能维持在要求的性能范围内,降低深度神经网络模型在剪枝量化过程中的性能损失,提高神经网络的压缩效果。
105.实施例2
106.此外,本公开实施例提供了一种深度神经网络的压缩装置。
107.具体的,如图3所示,深度神经网络的压缩装置300包括:
108.矫正模块301,用于对带量化节点的深度神经网络模型进行矫正,确定权重的量化步长,根据所述量化步长调整所述带量化节点的深度神经网络模型,得到矫正后的深度神经网络模型;
109.分析模块302,用于对所述矫正后的深度神经网络模型进行敏感度分析,得到所述矫正后的深度神经网络模型的各层卷积层敏感度;
110.确定模块303,用于根据所述各层卷积层敏感度确定对应的各层卷积层剪枝比例;
111.剪枝模块304,用于分析所述矫正后的深度神经网络模型的拓扑连接关系,按照预设连接关系将所述矫正后的深度神经网络模型的多个卷积层划分为一组卷积层,根据所述一组卷积层对应的卷积层剪枝比例剪去所述一组卷积层中卷积层对应的通道数量,得到剪枝后的深度神经网络模型;
112.量化模块305,用于对所述剪枝后的深度神经网络模型进行量化感知训练,直至量化后的深度神经网络模型的性能恢复到预设需求性能,得到剪枝量化后的深度神经网络模型;
113.判断模块306,用于判断所述剪枝量化后的深度神经网络模型是否达到预设量化条件;
114.导出模块307,用于若所述剪枝量化后的深度神经网络模型达到预设量化条件,则导出所述剪枝量化后的深度神经网络模型。
115.在一实施方式中,矫正模块301,用于若所述剪枝量化后的深度神经网络模型未达到预设量化条件,则对带量化节点的深度神经网络模型进行矫正,确定权重的量化步长,根据所述量化步长调整所述带量化节点的深度神经网络模型,得到矫正后的深度神经网络模型。
116.在一实施方式中,所述预设量化条件包括权重参数压缩到预设数量,或者,量化后的深度神经网络模型无法恢复到预设要求精度,判断模块306,还用于判断所述剪枝量化后的深度神经网络模型的权重参数的数量是否压缩到所述预设数量;或者,
117.判断所述剪枝量化后的深度神经网络模型是否无法恢复到所述预设要求精度。
118.在一实施方式中,深度神经网络的压缩装置300还包括:
119.获取模块,用于在初始深度神经网络模型中插入虚拟量化节点,得到所述带量化节点的深度神经网络模型。
120.在一实施方式中,分析模块302,还用于对所述矫正后的深度神经网络模型加载训练好的模型权重,测试得到所述矫正后的深度神经网络模型的性能;
121.对所述矫正后的深度神经网络模型的第i层卷积层按照顺序分别剪去多个预设比例的通道数量,得到多个剪枝后的深度神经网络模型,测试得到各所述剪枝后的神经网络模型的性能,其中,1≤i≤n,i为整数,n为所述矫正后的深度神经网络模型的卷积层层数;
122.根据所述矫正后的深度神经网络模型的性能和各所述剪枝后的神经网络模型的性能确定各所述剪枝后的神经网络模型的各层卷积层损失性能;
123.根据各所述剪枝后的神经网络模型的各层卷积层损失性能确定各层卷积层敏感度。
124.在一实施方式中,各层卷积层损失性能与各层卷积层敏感度存在正相关关系,各层卷积层敏感度与各层卷积层剪枝比例存在反相关关系。
125.在一实施方式中,对于相邻连接的两层卷积层,相邻前一层卷积层的输出通道和相邻后一层卷积层的输入通道的数量相同,剪枝模块304,还用于若剪枝过程中减小相邻前一层卷积层的输出通道数量,则同步减小相邻后一层卷积层的输入通道数量。
126.本实施例提供的深度神经网络的压缩装置300可以执行实施例1所提供的深度神经网络的压缩方法,为避免重复,在此不再赘述。
127.本实施例提供的深度神经网络的压缩装置,将剪枝和量化感知训练相结合,先在深度神经网络模型中插入量化节点,然后再对量化后的深度神经网络模型进行剪枝和量化感知训练,然后再迭代进行量化和剪枝,使得剪枝过程中考虑到量化策略的影响,从而达到剪枝量化后的深度神经网络模型能维持在要求的性能范围内,降低深度神经网络模型在剪枝量化过程中的性能损失,提高神经网络的压缩效果。
128.实施例3
129.此外,本公开实施例提供了一种电子设备,包括存储器以及处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行实施例1所提供的深度神经网络的压缩方法。
130.本实施例提供的电子设备,可以实现实施例1所提供的深度神经网络的压缩方法,为避免重复,在此不再赘述。
131.实施例4
132.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现实施例1所提供的深度神经网络的压缩方法。
133.在本实施例中,计算机可读存储介质可以为只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
134.本实施例提计算机可读存储介质可以实现实施例1所提供的深度神经网络的压缩方法,为避免重复,在此不再赘述。
135.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者终端中还存在另外的相同要素。
136.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
137.上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多
形式,均属于本技术的保护之内。