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

关系型自蒸馏方法、装置和系统及存储介质与流程

2021-12-07 20:07:00 来源:中国专利 TAG:


1.本发明涉及机器学习技术领域,更具体地涉及一种关系型自蒸馏方法、装置和系统以及存储介质。


背景技术:

2.近年来,神经网络模型在越来越多的领域获得越来越广泛的应用。随着神经网络模型处理的问题的难度提升,神经网络模型的网络结构也越来越复杂。有些复杂的模型体积巨大,有数百万(甚至数十亿)个参数,因此难以部署在边缘设备上。为了解决这一问题,发展出一种知识蒸馏的方法,通过该方法可以训练获得更简化的网络模型。知识蒸馏主要采用模型压缩的思想,使用一个较大的已经训练好的神经网络模型来教导一个较小的神经网络模型,以使该小模型能够学习大模型的拟合能力。大模型的拟合能力强,但计算效率低、耗时长,而小模型的拟合能力弱,但计算效率高。蒸馏学习的目的是让小模型学习大模型的拟合能力,以在不改变计算效率的前提下实现对小模型的拟合能力的提升。
3.在一般的蒸馏方法中,教师模型与学生模型之间分别输入同一个样本,得到各自的分类响应(logits),然后计算这两个响应之间的交叉熵损失,以达到蒸馏教师模型的能力到学生模型中的目的。除了上述的基于样本的直接蒸馏方法以外,目前还提出一种基于关系的蒸馏方法。这类方法主要考虑不同样本之间的距离,核心是希望学生模型建模的样本距离和教师模型建模的样本距离要接近。
4.然而,上述现有方法都是样本粒度的关系建模,没有涉及到与高层语义相关的分类层面的关系建模,具有较大的局限性。


技术实现要素:

5.考虑到上述问题而提出了本发明。本发明提供了一种关系型自蒸馏方法、装置和系统以及存储介质。
6.根据本发明一方面,提供了一种关系型自蒸馏方法。该方法包括在学生模型的训练过程中的第i次迭代下,执行当前迭代操作,当前迭代操作包括:获取n
i
个样本图像和对应的标注数据,其中,标注数据用于指示n
i
个样本图像各自对应的类别,n
i
个样本图像共分为k
i
个类别,其中,n
i
和k
i
均为大于或等于1的正整数,i=1、2
……
m,m为大于1的正整数;将n
i
个样本图像输入学生模型,以获得与第i次迭代相对应的图像分类信息,与第i次迭代相对应的图像分类信息包括与n
i
个样本图像一一对应的分类信息;在i大于或等于预设阈值的情况下,执行蒸馏操作,其中,蒸馏操作包括:对于k
i
个类别中的每个类别,基于该类别包括的所有样本图像所对应的分类信息确定该类别所对应的当前分类信息;对于至少一个类别对中的每个类别对,计算该类别对中的两个类别所对应的当前分类信息之间的距离,以获得该类别对的当前类内/类间距离信息,其中,至少一个类别对中的每个类别对中的每个类别是k
i
个类别之一;获取至少一个类别对中的每个类别对的历史类内/类间距离信息,历史类内/类间距离信息基于与先前迭代分别对应的图像分类信息获得,先前迭代包括第i次
迭代之前的一次或多次迭代;以及通过将至少一个类别对中的每个相同类别对的当前类内/类间距离信息与历史类内/类间距离信息进行匹配,来对学生模型进行蒸馏。
7.示例性地,在将n
i
个样本图像输入学生模型,以获得与第i次迭代相对应的图像分类信息之后,当前迭代操作还包括:获取当前存储在信息库中的库存储分类信息,库存储分类信息包括与多个预设类别一一对应的历史分类信息,多个预设类别包括至少一个类别对中的所有类别;将与第i次迭代相对应的图像分类信息与所获取的库存储分类信息结合,以获得新的库存储分类信息;用新的库存储分类信息替换当前存储在信息库中的库存储分类信息;其中,获取至少一个类别对中的每个类别对的历史类内/类间距离信息包括:对于至少一个类别对中的每个类别对,计算该类别对中的两个类别各自对应的历史分类信息之间的距离,以获得该类别对的历史类内/类间距离信息。
8.示例性地,库存储分类信息包括与c个预设类别一一对应的c个历史平均特征,历史平均特征为历史分类信息,k
i
个类别是c个预设类别的子集,c个预设类别是从第1至第m次迭代中采用的所有样本图像所属的全部类别。
9.示例性地,与第i次迭代相对应的图像分类信息包括由学生模型的中间网络层输出的n
i
个中间特征,n
i
个中间特征与n
i
个样本图像一一对应,与任一样本图像相对应的中间特征为与该样本图像相对应的分类信息,对于至少一个类别对中的每个类别对,对于k
i
个类别中的每个类别,基于该类别包括的所有样本图像所对应的分类信息确定该类别所对应的当前分类信息包括:对于k
i
个类别中的每个类别,对该类别包括的所有样本图像所对应的中间特征进行平均处理,以获得该类别所对应的当前平均特征,当前平均特征为当前分类信息。
10.示例性地,每个中间特征、每个当前平均特征和每个历史平均特征的维度均等于d,库存储分类信息用c
×
d大小的历史特征矩阵表示,历史特征矩阵中的c个行与c个历史平均特征一一对应,其中,在对于至少一个类别对中的每个类别对,计算该类别对中的两个类别所对应的当前分类信息之间的距离,以获得该类别对的当前类内/类间距离信息之前,蒸馏操作还包括:基于k
i
个当前平均特征构建c
×
d大小的当前特征矩阵,其中,当前特征矩阵中的c个行与c个预设类别一一对应,在当前特征矩阵中,与k
i
个类别相对应的行取值为各自对应的当前平均特征,剩余行中的元素全部置为0;对于至少一个类别对中的每个类别对,计算该类别对中的两个类别所对应的当前分类信息之间的距离,以获得该类别对的当前类内/类间距离信息包括:利用当前特征矩阵计算至少一个类别对的当前类内/类间距离信息;对于至少一个类别对中的每个类别对,计算该类别对中的两个类别各自对应的历史分类信息之间的距离,以获得该类别对的历史类内/类间距离信息包括:利用历史特征矩阵计算至少一个类别对的历史类内/类间距离信息。
11.示例性地,利用当前特征矩阵计算至少一个类别对的当前类内/类间距离信息包括:计算当前特征矩阵与当前特征矩阵的转置矩阵之积,以获得第一积;将第一积除以当前特征矩阵的模,以获得第一距离矩阵;基于第一距离矩阵获得至少一个类别对的当前类内/类间距离信息;利用历史特征矩阵计算至少一个类别对中的每个类别对的历史类内/类间距离信息包括:计算历史特征矩阵与历史特征矩阵的转置矩阵之积,以获得第二积;将第二积除以历史特征矩阵的模,以获得第二距离矩阵;基于第二距离矩阵获得至少一个类别对的历史类内/类间距离信息。
12.示例性地,将与第i次迭代相对应的图像分类信息与所获取的库存储分类信息结合,以获得新的库存储分类信息包括:采用指数滑动平均方式将与第i次迭代相对应的图像分类信息叠加到所获取的库存储分类信息中,以获得新的库存储分类信息。
13.示例性地,在i=1的情况下,所获取的库存储分类信息中的所有元素取值为0。
14.示例性地,与第i次迭代相对应的图像分类信息包括由学生模型的中间网络层输出的n
i
个中间特征,n
i
个中间特征与n
i
个样本图像一一对应,与任一样本图像相对应的中间特征为与该样本图像相对应的分类信息,对于至少一个类别对中的每个类别对,对于k
i
个类别中的每个类别,基于该类别包括的所有样本图像所对应的分类信息确定该类别所对应的当前分类信息包括:对于k
i
个类别中的每个类别,对该类别包括的所有样本图像所对应的中间特征进行平均处理,以获得该类别所对应的当前平均特征,当前平均特征为当前分类信息。
15.示例性地,通过将至少一个类别对中的每个相同类别对的当前类内/类间距离信息与历史类内/类间距离信息进行匹配,来对学生模型进行蒸馏包括:基于至少一个类别对中的的每个相同类别对的当前类内/类间距离信息和历史类内/类间距离信息计算距离损失值;至少基于距离损失值对学生模型进行蒸馏。
16.示例性地,从第1至第m次迭代中采用的所有样本图像所属的全部类别为c个类别,k
i
个类别是c个类别的子集,至少一个类别对的当前类内/类间距离信息用c
×
c大小的第一距离矩阵表示,至少一个类别对的历史类内/类间距离信息用c
×
c大小的第二距离矩阵表示,在第一距离矩阵中,元素m1
i

j

用于表示c个类别中的第i'个类别和第j'个类别之间的当前类内/类间距离信息,在第二距离矩阵中,元素m2
i

j

用于表示c个类别中的第i'个类别和第j'个类别之间的历史类内/类间距离信息,i'=1、2
……
c,j'=1、2
……
c,基于至少一个类别对中的的每个相同类别对的当前类内/类间距离信息和历史类内/类间距离信息计算距离损失值包括:生成大小为c
×
c的掩膜矩阵,其中,在掩膜矩阵中,元素m3
i

j

的值在c个类别中的第i'个类别和第j'个类别同时属于k
i
个类别时取1,元素m
i

j

的值在第i'个类别和第j'个类别中任一者不属于k
i
个类别时取0;计算第一距离矩阵与第二距离矩阵之间的均方误差损失值;将均方误差损失值与掩膜矩阵相乘,以获得距离损失值。
17.示例性地,至少基于距离损失值对学生模型进行蒸馏包括:计算附加损失值;将距离损失值与附加损失值相加,以获得蒸馏损失值;基于蒸馏损失值对学生模型进行蒸馏。
18.示例性地,与第i次迭代相对应的图像分类信息包括由学生模型的最后网络层输出的图像分类结果,图像分类结果包括与n
i
个样本图像一一对应的n
i
个分类结果,计算附加损失值包括:基于n
i
个分类结果和第一标注数据计算交叉熵损失值,附加损失值包括交叉熵损失值。
19.根据本发明另一方面,提供了一种关系型自蒸馏装置,包括:当前迭代操作模块,用于在学生模型的训练过程中的第i次迭代下,执行当前迭代操作,当前迭代操作模块包括:第一获取子模块,用于获取n
i
个样本图像和对应的标注数据,其中,标注数据用于指示n
i
个样本图像各自对应的类别,n
i
个样本图像共分为k
i
个类别,其中,n
i
和k
i
均为大于或等于1的正整数,i=1、2
……
m,m为大于1的正整数;输入子模块,用于将n
i
个样本图像输入学生模型,以获得与第i次迭代相对应的图像分类信息,与第i次迭代相对应的图像分类信息包括与n
i
个样本图像一一对应的分类信息;信息确定子模块,用于在i大于或等于预设阈值的情
况下,对于k
i
个类别中的每个类别,基于该类别包括的所有样本图像所对应的分类信息确定该类别所对应的当前分类信息;计算子模块,用于在i大于或等于预设阈值的情况下,对于至少一个类别对中的每个类别对,计算该类别对中的两个类别所对应的当前分类信息之间的距离,以获得该类别对的当前类内/类间距离信息,其中,至少一个类别对中的每个类别对中的每个类别是k
i
个类别之一;第二获取子模块,用于在i大于或等于预设阈值的情况下,获取至少一个类别对中的每个类别对的历史类内/类间距离信息,历史类内/类间距离信息基于与先前迭代分别对应的图像分类信息获得,先前迭代包括第i次迭代之前的一次或多次迭代;蒸馏子模块,用于在i大于或等于预设阈值的情况下,通过将至少一个类别对中的每个相同类别对的当前类内/类间距离信息与历史类内/类间距离信息进行匹配,来对学生模型进行蒸馏。
20.根据本发明另一方面,提供了一种关系型自蒸馏系统,包括处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时用于执行上述关系型自蒸馏方法。
21.根据本发明另一方面,提供了一种存储介质,在所述存储介质上存储了程序指令,所述程序指令在运行时用于执行上述关系型自蒸馏方法。
22.根据本发明实施例的关系型自蒸馏方法、装置、系统及存储介质,学生模型可以将自身积累的历史的类内和/或类间关系作为“教师”知识,基于历史的类内和/或类间关系以及当前的类内和/或类间关系进行自蒸馏。这种自蒸馏方法可以实现与高层语义相关的分类层面的关系建模,可以获得更加优越的网络性能。此外,该方法是自蒸馏方法,其从始至终只涉及学生模型,而省略了现有的复杂的教师模型,这有利于降低对处理设备(例如计算机显存)的计算资源的消耗。
附图说明
23.通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
24.图1示出用于实现根据本发明实施例的关系型自蒸馏方法和装置的示例电子设备的示意性框图;
25.图2示出根据本发明一个实施例的关系型自蒸馏方法的示意性流程图;
26.图3示出根据本发明一个实施例的关系型自蒸馏装置的示意性框图;以及
27.图4示出根据本发明一个实施例的关系型自蒸馏系统的示意性框图。
具体实施方式
28.近年来,基于人工智能的计算机视觉、深度学习、机器学习、图像处理、图像识别等技术研究取得了重要进展。人工智能(artificial intelligence,ai)是研究、开发用于模拟、延伸人的智能的理论、方法、技术及应用系统的新兴科学技术。人工智能学科是一门综合性学科,涉及芯片、大数据、云计算、物联网、分布式存储、深度学习、机器学习、神经网络等诸多技术种类。计算机视觉作为人工智能的一个重要分支,具体是让机器识别世界,计算
机视觉技术通常包括人脸识别、活体检测、指纹识别与防伪验证、生物特征识别、人脸检测、行人检测、目标检测、行人识别、图像处理、图像识别、图像语义理解、图像检索、文字识别、视频处理、视频内容识别、行为识别、三维重建、虚拟现实、增强现实、同步定位与地图构建(slam)、计算摄影、机器人导航与定位等技术。随着人工智能技术的研究和进步,该项技术在众多领域展开了应用,例如安防、城市管理、交通管理、楼宇管理、园区管理、人脸通行、人脸考勤、物流管理、仓储管理、机器人、智能营销、计算摄影、手机影像、云服务、智能家居、穿戴设备、无人驾驶、自动驾驶、智能医疗、人脸支付、人脸解锁、指纹解锁、人证核验、智慧屏、智能电视、摄像机、移动互联网、网络直播、美颜、美妆、医疗美容、智能测温等领域。
29.为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
30.本发明实施例提供了一种关系型自蒸馏方法、装置和系统以及存储介质。根据本发明实施例的关系型自蒸馏方法,学生模型可以将自身积累的历史的类内和/或类间关系作为“教师”知识,基于历史的类内和/或类间关系以及当前的类内和/或类间关系进行自蒸馏。这种自蒸馏方法可以实现与高层语义相关的分类层面的关系建模,可以获得更加优越的网络性能。
31.首先,参照图1来描述用于实现根据本发明实施例的关系型自蒸馏方法和装置的示例电子设备100。
32.如图1所示,电子设备100包括一个或多个处理器102、一个或多个存储装置104。可选地,电子设备100还可以包括输入装置106、输出装置108、以及图像采集装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
33.所述处理器102可以采用数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、微处理器中的至少一种硬件形式来实现,所述处理器102可以是中央处理单元(cpu)、图像处理器(gpu)、专用的集成电路(asic)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元中的一种或几种的组合,并且可以控制所述电子设备100中的其它组件以执行期望的功能。
34.所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
35.所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦
克风和触摸屏等中的一个或多个。
36.所述输出装置108可以向外部(例如用户)输出各种信息(例如图像和/或声音),并且可以包括显示器、扬声器等中的一个或多个。可选地,所述输入装置106和所述输出装置108可以集成在一起,采用同一交互装置(例如触摸屏)实现。
37.所述图像采集装置110可以采集图像,并且将所采集的图像存储在所述存储装置104中以供其它组件使用。图像采集装置110可以是单独的相机或移动终端中的摄像头等。应当理解,图像采集装置110仅是示例,电子设备100可以不包括图像采集装置110。在这种情况下,可以利用其他具有图像采集能力的器件采集图像,并将采集的图像发送给电子设备100。
38.示例性地,用于实现根据本发明实施例的关系型自蒸馏方法和装置的示例电子设备可以在诸如个人计算机或远程服务器等的设备上实现。
39.下面,将参考图2描述根据本发明实施例的关系型自蒸馏方法。图2示出根据本发明一个实施例的关系型自蒸馏方法200的示意性流程图。如图2所示,关系型自蒸馏方法200包括:在学生模型的训练过程中的第i次迭代下,执行当前迭代操作。当前迭代操作包括以下步骤s210、s220、s230、s240、s250和s260。
40.在步骤s210,获取n
i
个样本图像和对应的标注数据,其中,标注数据用于指示n
i
个样本图像各自对应的类别,n
i
个样本图像共分为k
i
个类别,其中,n
i
和k
i
均为大于或等于1的正整数,i=1、2
……
m,m为大于1的正整数。
41.m是学生模型的训练过程包含的所有迭代的次数,其可以是预设数值,也可以依据实际的训练情况而定(即其可以是非固定值)。
42.样本图像可以是静态图像,也可以是一段视频中的视频帧。在后一种情况中,n
i
个样本图像可以为一段视频。样本图像可以是图像采集装置采集到的原始图像,也可以是对原始图像进行预处理(诸如数字化、归一化、平滑等)之后获得的图像。
43.样本图像可以来自外部设备,由外部设备传送到电子设备100进行关系型自蒸馏。此外,样本图像也可以由电子设备100自身进行采集获得。例如,电子设备100可以利用图像采集装置110(例如独立的照相机)采集n
i
个样本图像。图像采集装置110可以将采集到的样本图像传送到处理器102,由处理器102进行关系型自蒸馏。
44.学生模型可以是任意合适的神经网络模型,其可以根据需要设定,本发明不对此进行限制。
45.神经网络模型的训练可以分为多个周期(epoch),每个epoch对应着刚好将整个数据集包含的样本图像过一遍的若干迭代次数。每一次迭代(iteration,简称“iter”)都是对数据集的一个小划分单元进行处理。即,一次迭代指的是对应地取一个批次的样本图像输入神经网络模型进行训练。一个批次的样本图像通常包含多张图像。因此,同一个epoch内的不同批次中的样本图像是不同的,并且,不同批次中的样本图像的数目可以相同,也可以不同。而不同epoch内的两个批次有可能具有相同的样本图像。
46.标注数据(ground truth)可以是预先采用人工等方式标注好的每个样本图像的类别信息。每个样本图像对应有一个特定的类别。
47.在步骤s220,将n
i
个样本图像输入学生模型,以获得与第i次迭代相对应的图像分类信息,与第i次迭代相对应的图像分类信息包括与n
i
个样本图像一一对应的分类信息。
48.示例性地,图像分类信息可以包括与n
i
个样本图像一一对应的中间特征和/或最终的分类结果。即,图像分类信息中的与任一样本图像相对应的分类信息可以包括与该样本图像相对应的中间特征和/或最终的分类结果。例如,图像分类信息可以包括由学生模型的中间网络层输出的n
i
个中间特征,n
i
个中间特征与n
i
个样本图像一一对应。
49.上述中间网络层可以是学生模型中除第一个输入层以及最后的输出层以外的任意一个网络层。可选地,上述中间网络层可以是在最后的输出层之前的最近网络层。最后的输出层可以是诸如softmax层。
50.本领域技术人员可以理解,中间特征也就是特征图(feature map),其可以用向量表示。每个中间特征具有一定维度,该维度可以用d表示。例如,d可以是256,即每个中间特征是256维的特征向量。
51.每个样本图像具有对应的真实类别标注信息,每个样本图像通过神经网络进行前向传播所获得的中间特征和/或最终分类结果也是归属于对应类别的。
52.在步骤s220之后,方法200还可以包括:执行蒸馏操作。该蒸馏操作的各步骤是在i大于或等于预设阈值的情况下执行。蒸馏操作可以至少包括下述的步骤s230、s240、s250和s260。
53.可以用j表示预设阈值。在一个示例中,j=1。即,从第一次迭代开始,就在每次迭代中执行蒸馏操作,即执行全部步骤s210

s260。在另一个示例中,j≥2。即,在刚开始训练的前一次或者多次(从第1次到第j

1次)迭代中,可以先不执行蒸馏操作,仅执行步骤s210

s220,而是从第j次迭代开始,才开始在每次迭代中执行蒸馏操作,即执行全部步骤s210

s260。
54.在步骤s230,在i大于或等于预设阈值的情况下,对于k
i
个类别中的每个类别,基于该类别包括的所有样本图像所对应的分类信息确定该类别所对应的当前分类信息。
55.示例性地,对于k
i
个类别中的每个类别,基于该类别包括的所有样本图像所对应的分类信息确定该类别所对应的当前分类信息可以包括:对于k
i
个类别中的每个类别,对该类别包括的所有样本图像所对应的分类信息进行平均处理,以获得该类别所对应的当前分类信息。
56.例如,在图像分类信息包括n
i
个中间特征的情况下,可以对n
i
个中间特征中与同一类别相对应的中间特征求平均,以获得与k
i
个类别一一对应的k
i
个当前平均特征。当前平均特征即为当前分类信息。
57.对于任一类别,当前批次的中间特征中可能有0个、1个或更多个中间特征是属于它的。在当前批次中,如果同一类别对应的中间特征有多个,则可以将该类别所对应的所有中间特征求平均,以获得与该类别对应的当前平均特征。如果一个类别对应的中间特征仅有一个,则将该类别所对应的所有中间特征求平均获得的当前平均特征还是该中间特征。对当前批次下的所有类别进行遍历计算,最终可以获得与k
i
个类别一一对应的k
i
个当前平均特征。可以理解,k
i
≤n
i

58.中间特征的维度可以用d表示。当前平均特征与中间特征的维度是一致的,因此,当前平均特征的维度也可以用d表示。
59.在步骤s240,在i大于或等于预设阈值的情况下,对于至少一个类别对中的每个类别对,计算该类别对中的两个类别所对应的当前分类信息之间的距离,以获得该类别对的
当前类内/类间距离信息,其中,至少一个类别对中的每个类别对中的每个类别是k
i
个类别之一。类别对的类内/类间距离信息可以表示该类别对中的两个类别之间的“关系”,因此,本技术的蒸馏方法可以理解为一种关系型的蒸馏方法。
60.每个类别对包含两个类别。至少一个类别对中的任意两个类别对所包含的类别不同。但是,任一类别对中包含的两个类别可以彼此相同或不同。例如,至少一个类别对中的任一类别对可以包含第一类别和第二类别,其中,第一类别和第二类别可以都是类别x,也可以一个是类别x,一个是类别y。当第一类别和第二类别是同一类别时,该类别对所对应的距离是类内距离,属于一种对类内关系的建模。当第一类别和第二类别是不同类别时,该类别对所对应的距离是类间距离,属于一种对类间关系的建模。
61.至少一个类别对中的类别对的数目可以根据需要设定。示例性地,至少一个类别对可以包括k
i
个类别能够组成的所有类别对,即至少一个类别对可以包括k
i
×
k
i
个类别对。例如,k
i
个类别中的第1个类别分别与第1个类别、第2个类别、第3个类别
……
第k
i
个类别组成类别对,可以获得k
i
个类别对;k
i
个类别中的第2个类别分别与第1个类别、第2个类别、第3个类别
……
第k
i
个类别组成类别对,也可以获得k
i
个类别对;以此类推,最后可以获得k
i
×
k
i
个类别对。在另一个示例中,至少一个类别对可以包括k
i
个类别能够组成的所有类别对中的部分类别对。例如,可以从上述k
i
×
k
i
个类别对中选择部分类别对作为至少一个类别对。
62.对于每个类别对,可以计算其两个类别所对应的当前分类信息(例如两个当前平均特征)之间的距离。该距离可以是诸如余弦距离,但这仅是示例而非对本发明的限制,该距离还可以是其他类型的距离。
63.在步骤s250,在i大于或等于预设阈值的情况下,获取至少一个类别对中的每个类别对的历史类内/类间距离信息,历史类内/类间距离信息基于与先前迭代分别对应的图像分类信息获得,先前迭代包括第i次迭代之前的一次或多次迭代。
64.历史类内/类间距离信息可以基于与先前迭代分别对应的图像分类信息获得。例如,可以将每次当前迭代下获得的图像分类信息叠加到先前迭代下获得的图像分类信息中,这样随着迭代的进行可以不断累加图像分类信息。在当前迭代下,可以获取当前已累加获得的图像分类信息(如下述库存储分类信息),并用该累加的图像分类信息计算每个类别对的历史类内/类间距离信息。
65.步骤s250中涉及的类别对与步骤s240中涉及的类别对保持一致。
66.在步骤s260,在i大于或等于预设阈值的情况下,通过将至少一个类别对中的每个相同类别对的当前类内/类间距离信息与历史类内/类间距离信息进行匹配,来对学生模型进行蒸馏。
67.所述匹配可以理解为通过调整学生模型的参数来使得至少一个类别对中的每个相同类别对的当前类内/类间距离信息与其历史类内/类间距离信息越来越接近直至满足预设要求。本领域技术人员可以理解学生模型的蒸馏的实现原理,本文不赘述。
68.根据本发明实施例的关系型自蒸馏方法,学生模型可以将自身积累的历史的类内和/或类间关系作为“教师”知识,基于历史的类内和/或类间关系以及当前的类内和/或类间关系进行自蒸馏。这种自蒸馏方法可以实现与高层语义相关的分类层面的关系建模,可以获得更加优越的网络性能。此外,该方法是自蒸馏方法,其从始至终只涉及学生模型,而省略了现有的复杂的教师模型,这有利于降低对处理设备(例如计算机显存)的计算资源的
消耗。
69.需注意,图2所示的各步骤的顺序仅是示例而非对本发明的限制,步骤s210

s260可以具有其他合适的执行顺序。例如,步骤s250可以在步骤s210

s240中的任一步骤之前、之后或与该步骤同时执行。
70.示例性地,根据本发明实施例的关系型自蒸馏方法可以在具有存储器和处理器的设备、装置或者系统中实现。
71.根据本发明实施例的关系型自蒸馏方法可以部署在图像采集端处,例如,可以部署在个人终端或服务器端处。
72.替代地,根据本发明实施例的关系型自蒸馏方法还可以分布地部署在服务器端(或云端)和个人终端处。例如,可以在客户端获取图像,客户端将获取的图像传送给服务器端(或云端),由服务器端(或云端)进行关系型自蒸馏。
73.根据本发明实施例,在将n
i
个样本图像输入学生模型,以获得与第i次迭代相对应的图像分类信息之后,当前迭代操作还包括:获取当前存储在信息库中的库存储分类信息,库存储分类信息包括与多个预设类别一一对应的历史分类信息,多个预设类别包括至少一个类别对中的所有类别;将与第i次迭代相对应的图像分类信息与所获取的库存储分类信息结合,以获得新的库存储分类信息;用新的库存储分类信息替换当前存储在信息库中的库存储分类信息;其中,获取至少一个类别对中的每个类别对的历史类内/类间距离信息包括:对于至少一个类别对中的每个类别对,计算该类别对中的两个类别各自对应的历史分类信息之间的距离,以获得该类别对的历史类内/类间距离信息。
74.上述获取当前存储在信息库中的库存储分类信息、将与第i次迭代相对应的图像分类信息与所获取的库存储分类信息结合以及用新的库存储分类信息替换当前存储在信息库中的库存储分类信息的步骤(上述三个步骤可以称为库存储分类信息更新步骤)可以在每次迭代下均执行,即i=1、2
……
m的情况下均执行。
75.在一个示例中,j≥2。此时,在第1次到第j

1次迭代中的每次迭代下,可以仅计算图像分类信息并利用图像分类信息更新信息库中的库存储分类信息,而不对学生模型进行蒸馏。当然,可选地,也可以从第1次迭代开始就每次迭代都执行步骤s210

s260以及库存储分类信息更新步骤,即从第1次迭代开始就对学生模型进行蒸馏。
76.由于进行前一次或多次迭代时库存储分类信息中的历史分类信息所对应的类别还不齐全,各类别的历史分类信息也由于积累时间短而不够准确,因此,此时对学生模型进行蒸馏可能训练效果不会太好。因此,可以选择跳过前一次或多次迭代,在这些迭代中仅进行库存储分类信息的更新而不进行学生模型的蒸馏。当库存储分类信息更新到一定程度,使得其历史分类信息所对应的类别比较齐全且其中的历史分类信息比较准确时,可以开始进行学生模型的蒸馏。j的大小,即开始进行蒸馏的时机,可以根据需要进行设定,本发明不对此进行限制。例如,j=2。在这种情况下,仅第1次迭代不进行蒸馏,其余迭代均进行蒸馏。
77.示例性地,库存储分类信息可以包括与c个预设类别(即c个类别)一一对应的c个历史平均特征,历史平均特征为历史分类信息,k
i
个类别是c个预设类别的子集,c个预设类别是从第1至第m次迭代中采用的所有样本图像所属的全部类别。在本实施例中,多个预设类别即为c个预设类别。
78.c个类别可以是在学生模型的训练过程中所采用的整个数据集(即上述一个epoch
采用的数据集)中样本图像所属的所有类别。针对不同数据集来说,c值可以是相同或不同的。但是在学生模型的一次完整的训练过程中,c值是固定不变的。
79.通常在一个批次中无法包含太多图像,这是因为处理设备(例如计算机显存)的计算资源所限。并且,通常每个批次的样本图像是通过随机采样的方法来获取的,因此,很难在当前批次中采样到所有类别的样本图像。因此,k
i
≤c,即k
i
个类别是c个类别的子集。k
i
是指在当前批次中涉及的类别的数目,其可以是一个与当前批次相关的变量,而非固定的常数。
80.示例性而非限制性地,可以将库存储分类信息用c
×
d大小的历史特征矩阵表示,其中,历史特征矩阵的c个行可以与c个类别一一对应。
81.库存储分类信息可以通过结合与先前迭代分别对应的图像分类信息获得。库存储分类信息可以通过将先前所经历的每次迭代中的各类别的当前平均特征累积起来实现更新。因此,库存储分类信息中的历史平均特征与上文描述的中间特征以及当前平均特征的维度是一致的,即均为d维。
82.示例性地,在进行第1次迭代之前,可以对信息库中的库存储分类信息进行初始化,获得初始的库存储分类信息。初始的库存储分类信息中的每个元素可以均为0。当进行第1次迭代之后,获得k1个当前平均特征,则可以将该k1个当前平均特征加入到库存储分类信息中,以对先前存储的库存储分类信息进行更新。随后,当进行第2次迭代之后,获得k2个当前平均特征,则可以将该k2个当前平均特征与先前存储的库存储分类信息(此时只包括前面加入的k1个当前平均特征)进行叠加,以又一次对库存储分类信息进行更新。其余次迭代以此类推。通过以上方法,可以不断对库存储分类信息进行更新,从而使得库存储分类信息中的各类别对应的数据越来越完善。这样,可能经过若干次迭代之后,所有类别均会有数据。
83.由上可知,当前所获取的存储在信息库中的库存储分类信息是上一次迭代中经过更新的库存储分类信息。
84.在信息库中累积库存储分类信息并通过库存储分类信息计算各类别对的历史类内/类间距离信息的实施例仅是示例而非限制。例如,可选地,可以将每次迭代获得的图像分类信息存储在信息库中。在当前迭代下,可以从信息库中获取其存储的所有先前迭代获得的图像分类信息,并基于这些图像分类信息计算各类别对的历史类内/类间距离信息。
85.根据本发明实施例,与第i次迭代相对应的图像分类信息包括由学生模型的中间网络层输出的n
i
个中间特征,n
i
个中间特征与n
i
个样本图像一一对应,与任一样本图像相对应的中间特征为与该样本图像相对应的分类信息,对于至少一个类别对中的每个类别对,对于k
i
个类别中的每个类别,基于该类别包括的所有样本图像所对应的分类信息确定该类别所对应的当前分类信息包括:对于k
i
个类别中的每个类别,对该类别包括的所有样本图像所对应的中间特征进行平均处理,以获得该类别所对应的当前平均特征,当前平均特征为当前分类信息。
86.上文已经描述了用中间特征作为分类信息并对中间特征求平均以获得当前分类信息的实施例,此处不赘述。
87.根据本发明实施例,每个中间特征、每个当前平均特征和每个历史平均特征的维度均等于d,库存储分类信息用c
×
d大小的历史特征矩阵表示,历史特征矩阵中的c个行与c
个历史平均特征一一对应,其中,在对于至少一个类别对中的每个类别对,计算该类别对中的两个类别所对应的当前分类信息之间的距离,以获得该类别对的当前类内/类间距离信息之前,蒸馏操作还包括:基于k
i
个当前平均特征构建c
×
d大小的当前特征矩阵,其中,当前特征矩阵中的c个行与c个预设类别一一对应,在当前特征矩阵中,与k
i
个类别相对应的行取值为各自对应的当前平均特征,剩余行中的元素全部置为0;对于至少一个类别对中的每个类别对,计算该类别对中的两个类别所对应的当前分类信息之间的距离,以获得该类别对的当前类内/类间距离信息包括:利用当前特征矩阵计算至少一个类别对的当前类内/类间距离信息;对于至少一个类别对中的每个类别对,计算该类别对中的两个类别各自对应的历史分类信息之间的距离,以获得该类别对的历史类内/类间距离信息包括:利用历史特征矩阵计算至少一个类别对的历史类内/类间距离信息。
88.将k
i
个当前平均特征(即图像分类信息)构建为c
×
d大小的当前特征矩阵,并将库存储分类信息用c
×
d大小的历史特征矩阵表示,这样,图像分类信息和库存储分类信息采用统一的形式表示,方便后续进行对两者体现的类内/类间关系进行比较。
89.可以理解,在上述采用k
l
个当前平均特征对库存储分类信息进行更新的实施例中,可以将上述k
l
个当前平均特征也构建为c
×
d大小的当前特征矩阵。
90.根据本发明实施例,利用当前特征矩阵计算至少一个类别对的当前类内/类间距离信息包括:计算当前特征矩阵与当前特征矩阵的转置矩阵之积,以获得第一积;将第一积除以当前特征矩阵的模,以获得第一距离矩阵;基于第一距离矩阵获得至少一个类别对的当前类内/类间距离信息;利用历史特征矩阵计算至少一个类别对中的每个类别对的历史类内/类间距离信息包括:计算历史特征矩阵与历史特征矩阵的转置矩阵之积,以获得第二积;将第二积除以历史特征矩阵的模,以获得第二距离矩阵;基于第二距离矩阵获得至少一个类别对的历史类内/类间距离信息。
91.在本实施例中,通过将当前特征矩阵与自身的转置矩阵相乘来计算第一距离矩阵并进而获得当前类内/类间距离信息。可以理解,在该计算过程中,计算的是k
i
个类别所能够组成的所有类别对(即k
i
×
k
i
个类别对)所对应的距离,而没有对类别对进行取舍。因此,此时计算的第一距离矩阵包括k
i
个类别所能够组成的所有类别对(即k
i
×
k
i
个类别对)所对应的距离信息。可以将第一距离矩阵视为k
i
×
k
i
个类别对所对应的当前类内/类间距离信息。对应地,通过将历史特征矩阵与自身的转置矩阵相乘来计算第二距离矩阵并进而获得历史类内/类间距离信息。可以理解,在该计算过程中,计算的是c个类别所能够组成的所有类别对(即c
×
c个类别对)所对应的距离。因此,此时计算的第二距离矩阵包括c个类别所能够组成的所有类别对(即c
×
c个类别对)所对应的距离信息。可选地,可以将第二距离矩阵视为c
×
c个类别对所对应的历史类内/类间距离信息。可选地,还可以对第二距离矩阵做进一步的掩膜处理,以获得仅包含k
i
×
k
i
个类别对所对应的距离的距离矩阵并将该距离矩阵作为k
i
×
k
i
个类别对所对应的历史类内/类间距离信息。
92.在上述方案中,第一距离矩阵表示的是当前的类内及类间余弦距离(即类内及类间关系),第二距离矩阵表示的是历史的类内及类间余弦距离(即类内及类间关系)。
93.根据本发明实施例,将与第i次迭代相对应的图像分类信息与所获取的库存储分类信息结合,以获得新的库存储分类信息包括:采用指数滑动平均(ema)方式将与第i次迭代相对应的图像分类信息叠加到所获取的库存储分类信息中,以获得新的库存储分类信
息。
94.例如,可以通过预定叠加算法将k
i
个当前平均特征叠加到c个历史平均特征中,以对信息库中的库存储分类信息进行更新。
95.预定叠加算法可以是任何合适的叠加算法,包括但不限于指数滑动平均(ema)法。更新后的库存储分类信息可以用于下一次迭代中进行历史类内/类间距离信息的计算。
96.需注意,在上述叠加过程中,是按照类别将k
i
个当前平均特征叠加到c个历史平均特征中。即,对于k
i
个类别中的每个类别,将该类别所对应的当前平均特征与该类别所对应的历史平均特征进行叠加运算(例如ema法),来获得与该类别对应的新的历史平均特征。随后,可以利用该新的历史平均特征替换库存储分类信息原来包括的与该类别相对应的历史平均特征。而对于除k
i
个类别以外的每个类别,库存储分类信息中原来包括的与该类别相对应的历史平均特征保持原样,不做替换。
97.根据本发明实施例,在i=1的情况下,所获取的库存储分类信息中的所有元素取值为0。此处描述的所获取的库存储分类信息即在当前迭代下从信息库获取的库存储分类信息,其为在当前迭代下未经更新的库存储分类信息。
98.如上所述,在第1次迭代之前,可以首先对库存储分类信息进行初始化,获得初始的库存储分类信息,并将其存储在信息库中。初始的库存储分类信息中所有元素均为0。例如,库存储分类信息可以用c
×
d大小的历史特征矩阵来表示。初始的库存储分类信息中每一行都是零向量。当在后续迭代中获得与任一类别对应的当前平均特征时,就可以将该类别的当前平均特征叠加到历史特征矩阵中与该类别对应的行向量上。
99.如前所述,当前批次中出现的每个类别所对应的当前平均特征可以用d维向量表示,按类别是唯一对应于历史特征矩阵中的某一行的。历史特征矩阵中的该行向量也是个d维向量。对上述两个向量进行叠加,例如采用指数滑动平均方式叠加,之后获得的叠加结果也是一个d维向量。可以用叠加获得的d维向量替换掉历史特征矩阵的原来那一行向量即可以完成对该行向量的更新。
100.根据本发明实施例,通过将至少一个类别对中的每个相同类别对的当前类内/类间距离信息与历史类内/类间距离信息进行匹配,来对学生模型进行蒸馏包括:基于至少一个类别对中的的每个相同类别对的当前类内/类间距离信息和历史类内/类间距离信息计算距离损失值;至少基于距离损失值对学生模型进行蒸馏。
101.计算当前类内/类间距离信息和历史类内/类间距离信息之间的差异,可以方便地判断当前的类内和/或类间关系与历史的类内和/或类间之间的差异,以更好地教导学生模型进行训练。
102.在一个示例中,可以直接将距离损失值作为蒸馏损失值并基于该蒸馏损失值进行蒸馏。在另一个示例中,还可以将距离损失值进一步与附加损失值相加,将相加后的结果作为蒸馏损失值并基于该蒸馏损失值进行蒸馏。
103.根据本发明实施例,从第1至第m次迭代中采用的所有样本图像所属的全部类别为c个类别,k
i
个类别是c个类别的子集,至少一个类别对的当前类内/类间距离信息用c
×
c大小的第一距离矩阵表示,至少一个类别对的历史类内/类间距离信息用c
×
c大小的第二距离矩阵表示,在第一距离矩阵中,元素m1
i

j

用于表示c个类别中的第i'个类别和第j'个类别之间的当前类内/类间距离信息,在第二距离矩阵中,元素m2
i

j

用于表示c个类别中的第
i'个类别和第j'个类别之间的历史类内/类间距离信息,i'=1、2
……
c,j'=1、2
……
c,基于至少一个类别对中的的每个相同类别对的当前类内/类间距离信息和历史类内/类间距离信息计算距离损失值包括:生成大小为c
×
c的掩膜矩阵,其中,在掩膜矩阵中,元素m3
i

j

的值在c个类别中的第i'个类别和第j'个类别同时属于k
i
个类别时取1,元素m
i

j

的值在第i'个类别和第j'个类别中任一者不属于k
i
个类别时取0;计算第一距离矩阵与第二距离矩阵之间的均方误差(l2)损失值;将均方误差损失值与掩膜矩阵相乘,以获得距离损失值。
104.本实施例中的第一距离矩阵和第二距离矩阵可以与上文描述的第一距离矩阵和第二距离矩阵是一致的,此处不再赘述。
105.如上所述,在一个批次内不一定所有类别都会出现,因此k
i
很有可能是小于c的。因此可以在计算损失值时通过二值掩膜矩阵来进行掩膜,以避免蒸馏一些无意义的信息(即当前批次没出现过的类别所对应的矩阵元素项)。这种方案可以减少无效信息的干扰,从而有助于提升学生模型的训练精度。
106.根据本发明实施例,从第1至第m次迭代中采用的所有样本图像所属的全部类别为c个类别,k
i
个类别是c个类别的子集,至少一个类别对的当前类内/类间距离信息用c
×
c大小的第一距离矩阵表示,c个类别所组成的所有类别对的历史类内/类间距离信息用c
×
c大小的第二距离矩阵表示,在第一距离矩阵中,元素m1
i

j

用于表示c个类别中的第i'个类别和第j'个类别之间的当前类内/类间距离信息,在第二距离矩阵中,元素m2
i

j

用于表示c个类别中的第i'个类别和第j'个类别之间的历史类内/类间距离信息,i'=1、2
……
c,j'=1、2
……
c,基于至少一个类别对中的的每个相同类别对的当前类内/类间距离信息和历史类内/类间距离信息计算距离损失值包括:生成大小为c
×
c的掩膜矩阵,其中,在掩膜矩阵中,元素m3
i

j

的值在c个类别中的第i'个类别和第j'个类别同时属于k
i
个类别时取1,元素m
i

j

的值在第i'个类别和第j'个类别中任一者不属于k
i
个类别时取0;将第二距离矩阵与掩膜矩阵相乘,以获得第三距离矩阵;计算第一距离矩阵与第三距离矩阵之间的均方误差损失值,上述距离损失值为所计算的均方误差损失值。
107.除在计算损失值时用掩膜矩阵以外,还可以将掩膜矩阵应用在计算至少一个类别对的历史类内/类间距离信息时。无论将掩膜矩阵用在何处,都是为了使得最后计算的损失值中不计入未出现类别的元素项,从而降低无效信息的干扰。
108.根据本发明实施例,至少基于距离损失值对学生模型进行蒸馏包括:计算附加损失值;将距离损失值与附加损失值相加,以获得蒸馏损失值;基于蒸馏损失值对学生模型进行蒸馏。
109.除基于类内和/或类间距离计算的损失值以外,还可以进一步加入其他损失值。通过多种损失值结合的方式,可以进一步提高学生模型训练的精度。
110.示例性地,附加损失值可以是任何合适的现有或将来可能出现的样本粒度的蒸馏方法中所采用的损失值。
111.根据本发明实施例,第一分类信息还包括由学生模型的最后网络层输出的图像分类结果,图像分类结果包括与n
i
个样本图像一一对应的n
i
个分类结果,计算附加损失值包括:基于n
i
个分类结果和第一标注数据计算交叉熵损失值,附加损失值包括交叉熵损失值。
112.在步骤s220中,所获得的与第i次迭代相对应的图像分类信息包括与n
i
个样本图像一一对应的分类信息。在与n
i
个样本图像一一对应的分类信息仅包括与n
i
个样本图像一
一对应的n
i
个中间特征的情况下,可以在步骤s220之外执行额外获取图像分类结果的步骤。在与n
i
个样本图像一一对应的分类信息本身包括与n
i
个样本图像一一对应的n
i
个分类结果的情况下,无需在步骤s220之外执行额外获取图像分类结果的步骤。
113.本领域技术人员可以理解距离损失值和交叉熵损失值的计算方式以及基于这些损失值进行梯度计算以对学习模型进行训练的方式,本文不再赘述。
114.蒸馏是迁移学习领域中的一种知识传递的方法。通过蒸馏能给被蒸馏对象提升泛化性(简单说,提高其在测试集上的效果)。一般来说,是将大模型(称为teacher)中的知识蒸馏给小模型(称为student)。但是根据本发明实施例,将历史的类内和/或类间距离信息视为teacher的知识,将当前次迭代下的类内和/或类间距离信息视为student的知识。基于这两种信息对学生模型进行蒸馏,同样可以达成模型优化的目的。
115.根据本发明另一方面,提供一种关系型自蒸馏装置。图3示出了根据本发明一个实施例的关系型自蒸馏装置300的示意性框图。
116.如图3所示,根据本发明实施例的关系型自蒸馏装置300包括当前迭代操作模块,用于在学生模型的训练过程中的第i次迭代下,执行当前迭代操作。当前迭代操作模块包括第一获取子模块310、输入子模块320、信息确定子模块330、计算子模块340、第二获取子模块350和蒸馏子模块360。所述各个模块可分别执行上文中结合图2描述的关系型自蒸馏方法的各个步骤/功能。以下仅对该关系型自蒸馏装置300的各部件的主要功能进行描述,而省略以上已经描述过的细节内容。
117.第一获取子模块310用于获取n
i
个样本图像和对应的标注数据,其中,所述标注数据用于指示所述n
i
个样本图像各自对应的类别,n
i
个样本图像共分为k
i
个类别,其中,n
i
和k
i
均为大于或等于1的正整数,i=1、2
……
m,m为大于1的正整数。第一获取子模块310可以由图1所示的电子设备中的处理器102运行存储装置103中存储的程序指令来实现。
118.输入子模块320用于将所述n
i
个样本图像输入所述学生模型,以获得与所述第i次迭代相对应的图像分类信息,所述与所述第i次迭代相对应的图像分类信息包括与所述n
i
个样本图像一一对应的分类信息。输入子模块320可以由图1所示的电子设备中的处理器102运行存储装置103中存储的程序指令来实现。
119.信息确定子模块330用于在i大于或等于预设阈值的情况下,对于所述k
i
个类别中的每个类别,基于该类别包括的所有样本图像所对应的分类信息确定该类别所对应的当前分类信息。信息确定子模块330可以由图1所示的电子设备中的处理器102运行存储装置103中存储的程序指令来实现。
120.第一计算子模块340用于在i大于或等于预设阈值的情况下,对于至少一个类别对中的每个类别对,计算该类别对中的两个类别所对应的当前分类信息之间的距离,以获得该类别对的当前类内/类间距离信息,其中,所述至少一个类别对中的每个类别对中的每个类别是所述k
i
个类别之一。第一计算子模块340可以由图1所示的电子设备中的处理器102运行存储装置103中存储的程序指令来实现。
121.第二获取子模块350用于在i大于或等于预设阈值的情况下,获取所述至少一个类别对中的每个类别对的历史类内/类间距离信息,所述历史类内/类间距离信息基于与先前迭代分别对应的图像分类信息获得,所述先前迭代包括所述第i次迭代之前的一次或多次迭代。第二获取子模块350可以由图1所示的电子设备中的处理器102运行存储装置103中存
储的程序指令来实现。
122.蒸馏子模块360用于在i大于或等于预设阈值的情况下,通过将所述至少一个类别对中的每个相同类别对的当前类内/类间距离信息与历史类内/类间距离信息进行匹配,来对所述学生模型进行蒸馏。蒸馏子模块360可以由图1所示的电子设备中的处理器102运行存储装置103中存储的程序指令来实现。
123.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
124.图4示出了根据本发明一个实施例的关系型自蒸馏系统400的示意性框图。关系型自蒸馏系统400包括图像采集装置410、存储装置(即存储器)420、以及处理器430。
125.所述图像采集装置410用于采集图像。图像采集装置410是可选的,关系型自蒸馏系统400可以不包括图像采集装置410。在这种情况下,可以利用其他图像采集装置采集图像,并将采集的图像发送给关系型自蒸馏系统400。
126.所述存储装置420存储用于实现根据本发明实施例的关系型自蒸馏方法中的相应步骤的计算机程序指令。
127.所述处理器430用于运行所述存储装置420中存储的计算机程序指令,以执行根据本发明实施例的关系型自蒸馏方法的相应步骤。
128.在一个实施例中,所述计算机程序指令被所述处理器430运行时用于执行以下步骤:在学生模型的训练过程中的第i次迭代下,执行当前迭代操作,当前迭代操作包括:获取n
i
个样本图像和对应的标注数据,其中,标注数据用于指示n
i
个样本图像各自对应的类别,n
i
个样本图像共分为k
i
个类别,其中,n
i
和k
i
均为大于或等于1的正整数,i=1、2
……
m,m为大于1的正整数;将n
i
个样本图像输入学生模型,以获得与第i次迭代相对应的图像分类信息,与第i次迭代相对应的图像分类信息包括与n
i
个样本图像一一对应的分类信息;在i大于或等于预设阈值的情况下,执行蒸馏操作,其中,蒸馏操作包括:对于k
i
个类别中的每个类别,基于该类别包括的所有样本图像所对应的分类信息确定该类别所对应的当前分类信息;对于至少一个类别对中的每个类别对,计算该类别对中的两个类别所对应的当前分类信息之间的距离,以获得该类别对的当前类内/类间距离信息,其中,至少一个类别对中的每个类别对中的每个类别是k
i
个类别之一;获取至少一个类别对中的每个类别对的历史类内/类间距离信息,历史类内/类间距离信息基于与先前迭代分别对应的图像分类信息获得,先前迭代包括第i次迭代之前的一次或多次迭代;以及通过将至少一个类别对中的每个相同类别对的当前类内/类间距离信息与历史类内/类间距离信息进行匹配,来对学生模型进行蒸馏。
129.此外,根据本发明实施例,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的关系型自蒸馏方法的相应步骤,并且用于实现根据本发明实施例的关系型自蒸馏装置中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(rom)、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd

rom)、usb
存储器、或者上述存储介质的任意组合。
130.在一个实施例中,所述程序指令在被计算机或处理器运行时可以使得计算机或处理器实现根据本发明实施例的关系型自蒸馏装置的各个功能模块,并和/或者可以执行根据本发明实施例的关系型自蒸馏方法。
131.在一个实施例中,所述程序指令在运行时用于执行以下步骤:在学生模型的训练过程中的第i次迭代下,执行当前迭代操作,当前迭代操作包括:获取n
i
个样本图像和对应的标注数据,其中,标注数据用于指示n
i
个样本图像各自对应的类别,n
i
个样本图像共分为k
i
个类别,其中,n
i
和k
i
均为大于或等于1的正整数,i=1、2
……
m,m为大于1的正整数;将n
i
个样本图像输入学生模型,以获得与第i次迭代相对应的图像分类信息,与第i次迭代相对应的图像分类信息包括与n
i
个样本图像一一对应的分类信息;在i大于或等于预设阈值的情况下,执行蒸馏操作,其中,蒸馏操作包括:对于k
i
个类别中的每个类别,基于该类别包括的所有样本图像所对应的分类信息确定该类别所对应的当前分类信息;对于至少一个类别对中的每个类别对,计算该类别对中的两个类别所对应的当前分类信息之间的距离,以获得该类别对的当前类内/类间距离信息,其中,至少一个类别对中的每个类别对中的每个类别是k
i
个类别之一;获取至少一个类别对中的每个类别对的历史类内/类间距离信息,历史类内/类间距离信息基于与先前迭代分别对应的图像分类信息获得,先前迭代包括第i次迭代之前的一次或多次迭代;以及通过将至少一个类别对中的每个相同类别对的当前类内/类间距离信息与历史类内/类间距离信息进行匹配,来对学生模型进行蒸馏。
132.根据本发明实施例的关系型自蒸馏系统中的各模块可以通过根据本发明实施例的实施关系型自蒸馏的电子设备的处理器运行在存储器中存储的计算机程序指令来实现,或者可以在根据本发明实施例的计算机程序产品的计算机可读存储介质中存储的计算机指令被计算机运行时实现。
133.尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
134.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
135.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
136.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
137.类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在
对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
138.本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
139.此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
140.本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的关系型自蒸馏装置中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
141.应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
142.以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

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

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

相关文献