一种提升卷积神经网络可靠性的方法、系统及设备

文档序号:25481150发布日期:2021-06-15 21:40阅读:109来源:国知局
一种提升卷积神经网络可靠性的方法、系统及设备

本申请涉及卷积神经网络领域,特别涉及一种提升卷积神经网络可靠性的方法、系统、设备及可读存储介质。



背景技术:

卷积神经网络(convolutinalneuralnetworks,cnns)是一种包含卷积计算且具有深度结构的前馈神经网络,能够实现对图像进行特征提取,然后对图像进行处理。cnns因其精度高而受到人工智能领域的广泛关注。

然而,软错误是现代计算机系统中一个重要的脆弱因素,它通常是由存储电路和逻辑电路中的高能粒子碰撞引起的。软错误是在程序执行过程中,指令和数据可能出现的暂态错误。随着制造工艺技术规模的扩大,计算机系统发生软错误的概率增加,导致利用cnns得到的图像处理结果精度较低。

因此,如何提升卷积神经网络可靠性,进而提高利用cnns得到的图像处理结果的精度是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种提升卷积神经网络可靠性的方法、系统、设备及可读存储介质,用于提升卷积神经网络可靠性,进而提高利用cnns得到的图像处理结果的精度。

为解决上述技术问题,本申请提供一种提升卷积神经网络可靠性的方法,该方法包括:

根据输入的图像处理命令确定待处理图像数据、卷积神经网络模型及校验码;

利用所述校验码对所述卷积神经网络模型进行软错误校验;

若所述卷积神经网络模型未出现软错误,则利用所述卷积神经网络模型对所述待处理图像数据进行图像处理。

可选的,所述卷积神经网络模型使用的数据类型包括32位浮点数,利用所述校验码对所述卷积神经网络模型进行软错误校验,包括:

确定所述卷积神经网络模型中的待检测卷积核;

利用所述校验码对所述待检测卷积核中权重的第30位进行sec-dedecc检测。

可选的,还包括:

当所述待检测卷积核的权重的第30位出现软错误时,利用所述校验码对所述待检测卷积核中权重的第30位进行修正;

利用修正后的所述待检测卷积核对所述待处理图像数据进行图像处理。

可选的,所述卷积神经网络模型使用的数据类型包括32位浮点数,利用所述校验码对所述卷积神经网络模型进行软错误校验,包括:

确定所述卷积神经网络模型中的待检测卷积核;

利用所述校验码对所述待检测卷积核中权重的第21位至第30位进行sec-dedecc检测。

可选的,在根据输入的图像处理命令确定待处理图像数据、卷积神经网络模型及校验码之前,还包括:

利用预设训练集对初始模型进行训练得到所述卷积神经网络模型;

根据所述卷积神经网络模型中的卷积核生成对应的校验码。

可选的,所述卷积神经网络模型使用的数据类型包括16位浮点数或64位浮点数。

本申请还提供一种提升卷积神经网络可靠性的系统,该系统包括:

确定模块,用于根据输入的图像处理命令确定待处理图像数据、卷积神经网络模型及校验码;

校验模块,用于利用所述校验码对所述卷积神经网络模型进行软错误校验;

图像处理模块,用于若所述卷积神经网络模型未出现软错误,则利用所述卷积神经网络模型对所述待处理图像数据进行图像处理。

可选的,所述卷积神经网络模型使用的数据类型包括32位浮点数,所述校验模块包括:

第一确定子模块,用于确定所述卷积神经网络模型中的待检测卷积核;

第一检测子模块,用于利用所述校验码对所述待检测卷积核中权重的第30位进行sec-dedecc检测。

本申请还提供一种提升卷积神经网络可靠性设备,该提升卷积神经网络可靠性设备包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任一项所述提升卷积神经网络可靠性的方法的步骤。

本申请还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述提升卷积神经网络可靠性的方法的步骤。

本申请所提供提升卷积神经网络可靠性的方法,包括:根据输入的图像处理命令确定待处理图像数据、卷积神经网络模型及校验码;利用校验码对卷积神经网络模型进行软错误校验;若卷积神经网络模型未出现软错误,则利用卷积神经网络模型对待处理图像数据进行图像处理。

本申请所提供的技术方案,通过在利用卷积神经网络模型对待处理图像数据进行图像处理之前,先对卷积神经网络模型进行软错误校验,只有在卷积神经网络模型未出现软错误时才进行图像处理,进而降低了计算机系统发生软错误的概率。同时,利用校验码进行软错误校验,极大地降低了校验后的卷积神经网络模型出现的概率,提高了利用cnns得到的图像处理结果精度。本申请同时还提供了一种提升卷积神经网络可靠性的系统、设备及可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种提升卷积神经网络可靠性的方法的流程图;

图2为本申请实施例所提供的一种32位浮点数的正常表示图;

图3为本申请实施例所提供的一种32位浮点数的第30位翻转错误之后的表示图;

图4为本申请实施例提供的一种利用校验码保护卷积神经网络模型中卷积层的卷积核中权重的第30位的示意图;

图5为本申请实施例提供的一种利用校验码保护卷积神经网络模型中全连接层层的卷积核中权重的第30位的示意图;

图6为本申请实施例提供的一种利用校验码对待检测卷积核中权重的第30位进行sec-dedecc检测的示意图;

图7为本申请实施例提供的一种校验码的逻辑结构的示意图;

图8为本申请实施例所提供的一种提升卷积神经网络可靠性的系统的结构图;

图9为本申请实施例所提供的一种提升卷积神经网络可靠性设备的结构图。

具体实施方式

本申请的核心是提供一种提升卷积神经网络可靠性的方法、系统、设备及可读存储介质,用于提升卷积神经网络可靠性,进而提高利用cnns得到的图像处理结果的精度。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

cnns是一种包含卷积计算且具有深度结构的前馈神经网络,主要由两种类型的层组成:卷积层与全连接层。

卷积层的功能是对输入数据进行特征提取,其内部包含多个卷积核,它们是一系列关于权重的矩阵。执行卷积操作时,权重矩阵与大小相同的输入特征映射的子矩阵按位置进行元素相乘。随后,权重矩阵向后移动指定步长,并重复进行以上相同的过程,直到操作完全完成。最后通过激励函数relu完成当前层输出。全连接层:在这里特征图会失去空间拓扑结构,被展开为向量与权重矩阵进行计算并通过激励函数得到输出。比如通常设置在最后一层的一种激励函数sigmoid,它能够一个数字映射到(0,1)的区间,从而对cnns进行最终的分类。

然而,软错误是现代计算机系统中一个重要的脆弱因素,它通常是由存储电路和逻辑电路中的高能粒子碰撞引起的。软错误是在程序执行过程中,指令和数据可能出现的暂态错误。随着制造工艺技术规模的扩大,计算机系统发生软错误的概率增加,导致利用cnns得到的图像处理结果精度较低。故本申请提供了一种提升卷积神经网络可靠性的方法,用于解决上述问题。

请参考图1,图1为本申请实施例所提供的一种提升卷积神经网络可靠性的方法的流程图。

其具体包括如下步骤:

s101:根据输入的图像处理命令确定待处理图像数据、卷积神经网络模型及校验码;

这里提到的待处理图像数据即为需要进行卷积运算的图像数据,本申请在利用卷积神经网络模型对待处理图像数据进行图像处理之前,先对卷积神经网络模型进行软错误校验,进而降低计算机系统发生软错误的概率。

这里提到的校验码,其具体可以为海明校验码。

在一个具体实施例中,为了得到能够校验卷积神经网络模型的校验码,在根据输入的图像处理命令确定待处理图像数据、卷积神经网络模型及校验码之前,还可以执行以下步骤:

利用预设训练集对初始模型进行训练得到卷积神经网络模型;

根据卷积神经网络模型中的卷积核生成对应的校验码。

s102:利用校验码对卷积神经网络模型进行软错误校验;

可选的,该卷积神经网络模型使用的数据类型具体可以为32位浮点数,在此基础上,为了提高校验速度,这里提到的利用校验码对卷积神经网络模型进行软错误校验,其具体可以为:

确定卷积神经网络模型中的待检测卷积核;

利用校验码对待检测卷积核中权重的第30位进行sec-dedecc检测。

进一步的,当待检测卷积核的权重的第30位出现软错误时,还可以执行如下步骤实现对卷及神经网络模型的修正:

当待检测卷积核的权重的第30位出现软错误时,利用校验码对待检测卷积核中权重的第30位进行修正;

利用修正后的待检测卷积核对待处理图像数据进行图像处理。

cnns的可靠性取决于数据类型、值、数据的符号和层的类型,以卷积神经网络模型使用的数据类型为32位浮点数为例,在其中的第30位是指数的符号位,它的位翻转对数据有很大的影响,在一个具体实施例中,请参考图2及图3,图2为本申请实施例所提供的一种32位浮点数的正常表示图,图3为本申请实施例所提供的一种32位浮点数的第30位翻转错误之后的表示图,在第30位发生翻转错误后,数值由原来的0.429471变成了1.46141e+38,可见第30位的数翻转会造成很大的数值偏差,在后继操作中可能引起溢出。

因此本申请实施例使用校验码保护卷积神经网络模型中卷积核的权重的第30位,请参考图4、图5、图6及图7,图4为本申请实施例提供的一种利用校验码保护卷积神经网络模型中卷积层的卷积核中权重的第30位的示意图,图5为本申请实施例提供的一种利用校验码保护卷积神经网络模型中全连接层层的卷积核中权重的第30位的示意图,图6为本申请实施例提供的一种利用校验码对待检测卷积核中权重的第30位进行sec-dedecc检测的示意图,图7为本申请实施例提供的一种校验码的逻辑结构的示意图,如图4和图5所示,本申请利用校验码对卷积神经网络模型的卷积核中权重的第30位进行保护,并在利用卷积神经网络模型对待处理图像数据进行图像处理之前,利用图7所示的校验码对待检测卷积核中权重的第30位进行如图6所示的sec-dedecc检测。

本申请实施例使用单错误校正和双错误检测sec-dedecc来检测cnns推理过程中的软错误,对训练过的权值生成ecc,使用它来保护权值的第30位,这种方案平均可以检测出99.83%的错误,保证分类准确率99.94%。

选择利用校验码保护权值的第30位,是由于以下两点原因:

1)本申请实施例更关注正数权值的大小:由于激活函数relu保留正数,并将负数变为零,所以数据的正负值类型会影响最终的分类结果。输入特征映射中只有零或正数,如果软错误发生在正的权重中,错误可能传播到后续层。否则,软错误将被relu掩盖。因此比起负数,本申请实施例更关注正数在后续错误传播中的情况。

2)本申请实施例更关注正数权值的变化幅度:重要的比特是可靠性的瓶颈,我们使用故障注入来分析软错误在不同比特中的影响。通常cnns使用32位浮点数。第30的位翻转对数据有很大的影响。例如,二进制表示形式0.429471的第30位发生位翻转,导致数据变化为1.46141e+38。

可选的,该卷积神经网络模型使用的数据类型具体可以为32位浮点数,在此基础上,为了提高校验速度,这里提到的利用校验码对卷积神经网络模型进行软错误校验,其具体可以为:

确定卷积神经网络模型中的待检测卷积核;

利用校验码对待检测卷积核中权重的第21位至第30位进行sec-dedecc检测。

在一个具体实施例中,由观察发现,在权值的第30位附近发生的软错误也会导致少量的误分类,因此为了进一步提高cnns的可靠性,本申请实施例扩大了保护范围。即对权值的21位到31位采用sec_dedecc纠错码保护,分类正确率能达到100%,与权值的完全保护(即对所有位均采用sec-dedecc)相同。

本申请实施例能够有效降低执行的能耗并兼顾系统可靠性。能量消耗随着要保护的权重数量增加而增加,与保护所有32位数据相比,保护数据的第30位只消耗0.8%的能量。保护数据的第21位到第31位比完全保护消耗31%的能量,并且可以获得相同的分类精度。可见如此设计在能够保证错误覆盖率的同时极大降低了ecc保护的能量消耗。

在一个具体实施例中,卷积神经网络模型使用的数据类型也可以包括16位浮点数或64位浮点数。

s103:若卷积神经网络模型未出现软错误,则利用卷积神经网络模型对待处理图像数据进行图像处理。

基于上述技术方案,本申请所提供的一种提升卷积神经网络可靠性的方法,通过在利用卷积神经网络模型对待处理图像数据进行图像处理之前,先对卷积神经网络模型进行软错误校验,只有在卷积神经网络模型未出现软错误时才进行图像处理,进而降低了计算机系统发生软错误的概率。同时,利用校验码进行软错误校验,极大地降低了校验后的卷积神经网络模型出现的概率,提高了利用cnns得到的图像处理结果精度。

请参考图8,图8为本申请实施例所提供的一种提升卷积神经网络可靠性的系统的结构图。

该系统可以包括:

确定模块100,用于根据输入的图像处理命令确定待处理图像数据、卷积神经网络模型及校验码;

校验模块200,用于利用校验码对卷积神经网络模型进行软错误校验;

图像处理模块300,用于若卷积神经网络模型未出现软错误,则利用卷积神经网络模型对待处理图像数据进行图像处理。

在上述实施例的基础上,在一个具体实施例中,该卷积神经网络模型使用的数据类型包括32位浮点数,该校验模块200可以包括:

第一确定子模块,用于确定卷积神经网络模型中的待检测卷积核;

第一检测子模块,用于利用校验码对待检测卷积核中权重的第30位进行sec-dedecc检测。

在上述实施例的基础上,在一个具体实施例中,该校验模块200还可以包括:

修正子模块,用于当待检测卷积核的权重的第30位出现软错误时,利用校验码对待检测卷积核中权重的第30位进行修正;

图像处理子模块,用于利用修正后的待检测卷积核对待处理图像数据进行图像处理。

在上述实施例的基础上,在一个具体实施例中,该卷积神经网络模型使用的数据类型包括32位浮点数,该校验模块200可以包括:

第二确定子模块,用于确定卷积神经网络模型中的待检测卷积核;

第二检测子模块,用于利用校验码对待检测卷积核中权重的第21位至第30位进行sec-dedecc检测。

在上述实施例的基础上,在一个具体实施例中,该系统还可以包括:

训练模块,用于利用预设训练集对初始模型进行训练得到卷积神经网络模型;

生成模块,用于根据卷积神经网络模型中的卷积核生成对应的校验码。

在上述实施例的基础上,在一个具体实施例中,该卷积神经网络模型使用的数据类型包括16位浮点数或64位浮点数。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

请参考图9,图9为本申请实施例所提供的一种提升卷积神经网络可靠性设备的结构图。

该提升卷积神经网络可靠性设备900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对装置中的一系列指令操作。更进一步地,处理器922可以设置为与存储介质930通信,在提升卷积神经网络可靠性设备900上执行存储介质930中的一系列指令操作。

提升卷积神经网络可靠性设备900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述图1至图7所描述的提升卷积神经网络可靠性的方法中的步骤由提升卷积神经网络可靠性设备基于该图9所示的结构实现。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本申请所提供的一种提升卷积神经网络可靠性的方法、系统、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1