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

卷积神经网络的量化感知训练方法、卷积神经网络结构与流程

2022-03-02 03:25:48 来源:中国专利 TAG:


1.本发明涉及机器学习领域,特别地,涉及一种卷积神经网络的量化感知训练方法。


背景技术:

2.卷积神经网络(cnn)由于精度高在视觉任务中已经有非常广泛的应用。为了得到更高的精度,在训练时采用多分支结构的卷积神经网络,这样可以做得很复杂,在推理时可以把多分支合并为单分支,这样就可以减少存储空间占用,加快推理速度。典型的可合并分支结构卷积神经网络有repvgg,dbb等。
3.为了进一步节省存储空间,加快推理速度,往往还需要对卷积神经网络模型进行量化,以便将高精度浮点数的模型参数更新为低精度整数模型参数,例如,将浮点数表示的权重和激活用低精度整数来近似表示,从而可以得到低比特的卷积神经网络模型。量化感知训练是模型量化技术之一,其在训练的过程中通过网络模拟量化的效果来进行参数更新和优化。
4.对于训练时采用的可合并分支结构卷积神经网络,如果直接对其进行量化感知训练,由于目前的量化感知训练都是针对每一个卷积做的,训练时会有额外的量化参数,每个分支的参数可能都不一样,这样导致量化后,多分支无法合并成单分支。所以,现有量化感知训练方法是把多分支合并成单分支以后,再对其进行量化感知训练。而基于单分支结构的卷积神经网络的量化感知训练,所得到的卷积神经网络的模型参数精度不佳。


技术实现要素:

5.本发明提供了一种卷积神经网络的量化感知训练方法,以在多分支结构下对卷积神经网络进行量化感知训练。
6.本发明提供的一种卷积神经网络的量化感知训练方法,该方法包括,
7.对第一卷积神经网络进行样本训练,其中,第一卷积神经网络中至少一个卷积层包括有可合并分支结构和至少一个第一直连分支,
8.在训练后的第一卷积神经网络至少一个卷积层中存在至少一个第一直连分支,将卷积层中除第一直连分支之外的可合并分支结构进行合并,得到具有第一直连分支结构的第二卷积神经网络;
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.对于每个卷积层,将输入数据进行卷积运算,将卷积运算的输出结果与残差分支、和/或直连分支进行第二累加运算,将第二累加运算的输出结果进行激活函数运算。
40.较佳地,所述第一直连分支为可合并分支中的第二直连分支。
41.本技术提供的一种卷积神经网络的量化感知训练方法,通过在具有相同输入数据维度与输出数据维度的卷积层中存在直连分支,使得量化感知训练不必基于单分支结构的卷积神经网络来进行,有利于提高卷积神经网络的模型参数精度,从而在量化感知训练时可以得到更好的训练效果。
附图说明
42.图1为本技术卷积神经网络的量化感知训练方法的一种示意图。
43.图2为本技术实施例一卷积神经网络结构的一种示意图。
44.图3为本技术实施例一repvgg卷积神经网络结构进行量化感知训练的一种示意图。
45.图4为另一种具有直连分支结构的卷积神经网络的一种示意图。
46.图5为本技术实施例二卷积神经网络结构的一种示意图。
47.图6为本技术实施例二repvgg卷积神经网络结构进行量化感知训练的一种示意图。
48.图7为本技术实施例卷积神经网络的量化感知训练装置的一种示意图。
具体实施方式
49.为了使本技术的目的、技术手段和优点更加清楚明白,以下结合附图对本技术做进一步详细说明。
50.申请人经研究发现,直连分支(shortcut)是卷积神经网络发展中出现的一种非常有效的结构,其可以以不做任何处理的方式,把一个算子的输出传递到另一个算子的输入,从而使得信息丢失更少;在特征映射处理上,具有直连分支结构的卷积神经网络模型相比于不具有直连分支结构的卷积神经网络模型,具有更好的准确性,这意味着,直连分支对于
量化感知训练的效果非常重要。
51.有鉴于此,申请人提出,在卷积神经网络中,若卷积层的输入数据维度与输出数据维度相同,则为该卷积层增加一直连分支,基于多分支结构卷积神经网络,进行量化感知训练,或者,保留卷积层既有的直连分支,基于多分支结构卷积神经网络,进行量化感知训练。
52.参见图1所示,图1为本技术卷积神经网络的量化感知训练方法的一种示意图。该方法包括,
53.步骤101,对第一卷积神经网络进行样本训练,其中,第一卷积神经网络中至少一个卷积层包括有可合并分支结构和至少一个第一直连分支,
54.其中,样本训练所使用的样本数据可以是各种需要的样本数据,例如:
55.对于用于图像目标检测的卷积神经网络,样本数据可以为图像数据,例如,图像帧;
56.对于用于文本检测的卷积神经网络,样本数据可以为文本数据,例如,具有文字编码信息的文本,
57.对于用于声音检测的卷积神经网络,样本数据可以为声音数据,例如,具有不同频段、不同幅度的信号。
58.步骤102,在训练后的第一卷积神经网络至少一个卷积层中保留至少一个第一直连分支,将卷积层中除第一直连分支之外的可合并分支结构进行合并,得到具有第一直连分支结构的第二卷积神经网络,
59.其中,
60.卷积层中存在的第一直连分支为增加的直连分支,
61.和/或
62.卷积层中存在的第一直连分支为所述可合并分支结构中的既有直连分支,
63.步骤103,基于第二卷积神经网络进行量化感知训练。
64.本技术通过使卷积层中存在第一直连分支,得到多分支结构卷积神经网络,基于多分支结构卷积神经网络进行量化感知训练,有利于提高卷积神经网络模型量化的效果。
65.利用本技术量化感知训练后的卷积神经网络模型,可进行卷积神经网络芯片设计,它使得卷积神经网络芯片中的计算单元在具有较佳数据精度的同时所需处理的比特位减少,从而有利于减少硬件算力的消耗,节省硬件资源。
66.实施例一
67.参见图2所示,图2为本技术实施例一卷积神经网络结构的一种示意图,其中,a图为用于样本训练的多分支结构卷积神经网络结构,b图为用于量化感知训练时的卷积神经网络结构。
68.如图a所示,任一具有相同输入数据维度与输出数据维度的第i层卷积层包括有卷积运算、激活函数运算(relu)、第二累加运算、第一累加运算、残差分支以及第一直连分支,其中:
69.第一直连分支为增加的直连分支,
70.卷积运算的输入、残差分支的输入、第一直连分支的输入来自于第i-1层卷积层中的第一累加运算的输出,
71.卷积运算的输出结果、残差分支的输出结果被输入至第二累加运算,
72.第二累加运算的输出结果被输入至激活函数运算,
73.激活函数运算的输出结果、第一直连分支被输入至第一累加运算,
74.第一累加运算的输出结果被分别输入至第i 1层卷积层中的卷积运算、残差分支、第一直连分支,
75.也就是说,
76.第i-1层卷积层中的第一累加运算的输出与第i层卷积层中第二累加运算的输入之间连接有第i层的卷积运算、残差分支,
77.第i-1层卷积层中的第一累加运算的输出与第i层卷积层中第一累加运算的输入之间连接有第i层中第一直连分支,
78.第i层卷积层中第二累加运算的输出与第i层卷积层中第一累加运算的输入之间连接有激活函数运算。
79.所述残差分支为可合并分支。
80.将样本数据输入至多分支结构卷积神经网络(第一卷积神经网络)进行样本训练,得到具有全精度浮点参数的浮点模型,
81.为了在量化感知训练的模型中保留有直连分支,在本实施例中,对于每层卷积层,将该卷积层的残差分支合并;而对于第一直连分支,鉴于增加第一直连分支时采用了第一直连分支跨过了激活函数运算方式,为有利于推理结果与样本训练结果一致,提高后续量化感知训练的精度,故而,保留第一直连分支,从而得到每个卷积层都具有第一直连分支结构的卷积神经网络,该网络仍然为具有全精度浮点参数的浮点模型,如图b所示。任一具有相同输入数据维度与输出数据维度的第i层卷积层包括有卷积运算、激活函数运算(relu)、第一累加运算、以及第一直连分支,其中:
82.第i-1层卷积层中的第一累加运算的输出与第i层卷积层中激活函数运算的输入之间连接有第i层的卷积运算,
83.第i-1层卷积层中的第一累加运算的输出与第i层卷积层中第一累加运算的输入之间连接有第i层中第一直连分支。
84.第i层卷积层中的激活函数运算的输出连接至第i层卷积层中的第一累加运算的输入。
85.将具有第一直连分支的卷积神经网络作为预训练模型,进行量化感知训练,得到具有低比特整数的整数模型。
86.为便于理解,以下以repvgg为例来进行说明。
87.参见图3所示,图3为本技术repvgg卷积神经网络结构进行量化感知训练的一种示意图,其中,a图为用于样本训练的多分支结构卷积神经网络,b图为用于量化感知训练时的卷积神经网络。
88.如图a中,第一个卷积层的输入数据维度与输出数据维度不相同,因此,该卷积层中没有增加第一直连分支,并且,在该卷积层中不包括单位残差分支;其中,输入数据输入至该卷积层中卷积运算,并且输入至该卷积层中的卷积残差分支,卷积运算的结果与卷积残差分支的输出结果输入至第二累加运算,第二累加运算的结果输入至该卷积层的激活函数,激活函数的输出结果输入至第二个卷积层。
89.在其余卷积层中,输入数据维度与输出数据维度相同,则每一卷积层包括,卷积运
算、激活函数运算(relu)、第二累加运算、第一累加运算、卷积残差分支、单位残差分支、以及第一直连分支,其中:
90.本卷积层中的卷积运算的输入、卷积残差分支的输入、单位残差分支的输入、第一直连分支的输入来自于与本卷积层相邻的上一卷积层中的第一累加运算的输出,
91.卷积运算的输出、卷积残差分支的输出、单位残差分支的输出被输入至第二累加运算,
92.第二累加运算的输出被输入至激活函数运算,
93.激活函数运算的输出、第一直连分支被输入至第一累加运算,
94.第一累加运算的输出被分别输入至下一卷积层中的卷积运算、卷积残差分支、单位残差分支、第一直连分支,
95.所述卷积残差分支、单位残差分支为可合并分支,其中,单位残差分支可理解为第二直连分支。
96.如图b所示。第一个卷积层中,卷积残差分支作为可合并分支被合并后,第一个卷积层中,卷积运算的结果输入至激活函数,激活函数的输出结果输入至第二个卷积层,
97.在第二个卷积层中,第一个卷积层中激活函数的输出结果(即,第二个卷积层的输入)通过第二卷积层中的第一直连分支输入至第二个卷积层中第一累加运算的输入,
98.在除第一个卷积层、第二卷积层之外的其余卷积层中,输入数据维度与输出数据维度相同,则每一卷积层包括,卷积运算、激活函数运算(relu)、第一累加运算、以及第一直连分支,其中:
99.上一卷积层中的第一累加运算的输出与本卷积层中激活函数运算的输入之间连接有本卷积层的卷积运算,
100.上一卷积层中的第一累加运算的输出与本卷积层中第一累加运算的输入之间连接有本卷积层的第一直连分支。
101.本卷积层中的激活函数运算的输出连接至本卷积层中的第一累加运算的输入。
102.量化感知训练的过程包括:
103.首先,基于多分支结构卷积神经网络即图3中a所示的网络结构进行样本训练,得到具有全精度浮点参数的浮点模型,
104.然后,对于每层卷积层,将该卷积层的残差分支合并,留有增加的第一直连分支,得到具有第一直连分支的卷积神经网络,即图3中b所示的网络结构,
105.最后,将具有第一直连分支的卷积神经网络作为预训练模型,进行量化感知训练,得到具有低比特整数的整数模型。
106.通过实验证明,对上述repvgg神经网络进行权重2比特,激活8比特量化感知训练,改进之前,神经网络精度为63.7,改进之后,神经网络精度为68.95。
107.作为一种变形,在卷积神经网络中所增加的第一直连分支还可以如图4所示。图4为另一种具有第一直连分支结构的卷积神经网络结构的一种示意图,其中,a图为用于样本训练的多分支结构卷积神经网络,b图为量化感知训练时的卷积神经网络。
108.如图a中,每层卷积层中,卷积运算、激活函数运算、第二累加运算、第一累加运算、残差分支的连接关系与图2中的a相同,不同的是,第i层卷积层中,第一直连分支连接于第i-1层卷积层中的第二累加运算的输出与第i层中第一累加运算的输入之间。
109.如图b中,每层卷积层中,卷积运算、激活函数运算(relu)、第一累加运算的连接关系与图2中的b相同,不同的是,第i层的第一直连分支连接于第i-1层卷积层中的第一卷积运算的输出(即,激活函数运算的输入)与第i层中第一累加运算的输入之间。
110.在本实施例中,可合并分支中可以包括第二直连分支,也可以不包括任何直连分支,如果有第二直连分支,在进行量化感知训练时第二直连分支可以进行合并,也可予以保留。
111.实施例二
112.参见图5所示,图5为本技术实施例二卷积神经网络结构的一种示意图,其中,a图为用于样本训练的多分支结构卷积神经网络结构,b图为用于量化感知训练的卷积神经网络结构。
113.如a图中所示,任一具有相同输入数据维度与输出数据维度的第i层卷积层包括有卷积运算、激活函数运算(relu)、第二累加运算、残差分支,其中:
114.残差分支中包括至少一个直连分支,为行文方便,后文称之为第一直连分支。
115.第i层卷积层中卷积运算的结果输入至第二累加运算,来自第i-1层激活函数运算的输出结果通过残差分支输入至第二累加运算,第二累加运算的输出结果输入至激活函数运算,激活函数运算的输出结果分别输入至第i 1层卷积层中的卷积运算、以及第i 1层卷积层中的残差分支。
116.所述残差分支为可合并分支。
117.将样本数据输入至所述多分支结构卷积神经网络结构(第一卷积神经网络),得到训练后的第一卷积神经网络。
118.保留第一直连分支,将卷积层中除第一直连分支之外的可合并分支进行合并,得到具有第一直连分支结构的卷积神经网络结构(第二卷积神经网络),如图5中的b图所示,任一具有相同输入数据维度与输出数据维度的第i层卷积层包括有卷积运算、激活函数运算(relu)、第二累加运算、以及第一直连分支,其中:
119.第i-1层卷积层中的激活函数运算的输出与第i层卷积层中第二累加运算的输入之间连接有第i层的卷积运算,
120.第i-1层卷积层中的激活函数运算的输出与第i层卷积层中第二累加运算的输入之间连接有第i层中第一直连分支,
121.第i层卷积层中的第二累加运算的输出连接至第i层卷积层中的激活函数运算的输入。
122.将具有第一直连分支的卷积神经网络作为预训练模型,进行量化感知训练,得到具有低比特整数的整数模型。
123.为便于理解,以下以repvgg为例。
124.参见图6所示,图6为repvgg卷积神经网络结构的一种示意图,其中,a图为用于样本训练的多分支结构卷积神经网络,b图为用于量化感知训练时的卷积神经网络。
125.如图a中,第一个卷积层的输入数据维度与输出数据维度不相同,因此,该卷积层中没有单位残差分支,在其余卷积层中,输入数据维度与输出数据维度相同,则每一卷积层包括,卷积运算、激活函数运算(relu)、第二累加运算、卷积残差分支、单位残差分支,其中:
126.第i层卷积层中卷积运算的结果输入至第二累加运算,来自第i-1层卷积层的输出
结果分别通过卷积残差分支、单位残差分支输入至第二累加运算,第二累加运算的输出结果输入至激活函数运算,激活函数运算的输出结果分别输入至第i 1层卷积层中的卷积运算、以及第i 1层卷积层中的卷积残差分支、单位残差分支。
127.所述卷积残差分支、单位残差分支为可合并分支,其中,单位残差分支即为第一直连分支。
128.如图b所示。第一个卷积层的输入数据维度与输出数据维度不相同,因此,该卷积层中没有第一直连分支,在其余卷积层中,输入数据维度与输出数据维度相同,则每一卷积层包括,卷积运算、激活函数运算(relu)、第二累加运算、以及第一直连分支,其中:
129.上一卷积层中的激活函数运算的输出与本卷积层中第二累加运算的输入之间连接有本卷积层的卷积运算,
130.上一卷积层中的激活函数运算的输出与本卷积层中第二累加运算的输入之间连接有本卷积层的第一直连分支。
131.本卷积层中的第二累加运算的输出连接至本卷积层中的激活函数运算的输入。
132.量化感知训练的过程包括:
133.首先,基于多分支结构卷积神经网络即图6中a所示的网络结构进行样本训练,得到具有全精度浮点参数的浮点模型,
134.然后,对于每层卷积层,保留第一直连分支,将该卷积层除第一直连分支之外的残差分支合并,得到具有第一直连分支结构的卷积神经网络(第二卷积神经网络),
135.最后,将具有第一直连分支的卷积神经网络作为预训练模型,进行量化感知训练,得到具有低比特整数的整数模型。
136.参见图7所示,图7为本技术实施例卷积神经网络的量化感知训练装置的一种示意图,该装置包括,
137.样本训练模块,用于对第一卷积神经网络进行样本训练,其中,第一卷积神经网络中的每个卷积层包括有可合并分支结构和至少一个第一直连分支,
138.分支合并模块,用于将训练后的第一卷积神经网络的每个卷积层中至少一个第一直连分支予以保留,将除第一直连分支之外的可合并分支结构进行合并,得到具有第一直连分支结构的第二卷积神经网络,
139.量化感知训练模块,用于基于第二卷积神经网络进行量化感知训练。
140.对于装置/网络侧设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
141.在所述实施例一、二中,所应理解的是,并非每个卷积层都有可合并分支结构,也并非每个卷积层都有第一直连分支,其中,只要有一个卷积层中具有第一直连分支和合并分支结构即可,此外,可合并分支结构、以及第一直连可以分别在不同的卷积层中。在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物
品或者设备中还存在另外的相同要素。
142.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
再多了解一些

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

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

相关文献