CN111008699A - 一种基于自动驾驶的神经网络数据存储方法及系统 - Google Patents

一种基于自动驾驶的神经网络数据存储方法及系统 Download PDF

Info

Publication number
CN111008699A
CN111008699A CN201911232552.4A CN201911232552A CN111008699A CN 111008699 A CN111008699 A CN 111008699A CN 201911232552 A CN201911232552 A CN 201911232552A CN 111008699 A CN111008699 A CN 111008699A
Authority
CN
China
Prior art keywords
neuron
storage
factor
neural network
vulnerability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911232552.4A
Other languages
English (en)
Other versions
CN111008699B (zh
Inventor
王晶
许丹亚
李珂瑶
高岚
张伟功
朱晓燕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Capital Normal University
Original Assignee
Capital Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Capital Normal University filed Critical Capital Normal University
Priority to CN201911232552.4A priority Critical patent/CN111008699B/zh
Publication of CN111008699A publication Critical patent/CN111008699A/zh
Application granted granted Critical
Publication of CN111008699B publication Critical patent/CN111008699B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明涉及一种基于自动驾驶的神经网络数据存储方法及系统。该方法包括:获取存储空间;存储空间包括多个类型的存储区块,不同类型的存储区块采用不同的纠检错编码,不同类型的存储区块的可靠性不同;获取根据自动驾驶要求构建的神经网络模型;对神经网络模型中每个神经元的脆弱度进行分析,得到每个神经元的脆弱度;根据每个神经元的脆弱度和存储区块的类型,将所有的神经元进行分类,得到多个类别的神经元集合;神经元集合的类别和存储区块的类别相同;采用图染色算法,将多个类别的神经元分别存储至存储空间的存储区块中;可靠性越高的存储区块中存储的神经元的脆弱度越高。本发明可以提高数据存储的准确性,进而提高自动驾驶的安全性能。

Description

一种基于自动驾驶的神经网络数据存储方法及系统
技术领域
本发明涉及自动驾驶领域,特别是涉及一种基于自动驾驶的神经网络数据存储方法及系统。
背景技术
近几年来,人工智能引发了全球的热潮。在自动驾驶领域,深度神经网络(DNN)是其中最重要的技术之一,它模仿了人脑中神经元的组织方式和运行模式,对输入的信息(比如图片、文本、语音)进行特征提取和分类,并能得到高质量的结果。自动驾驶要求实时的图像处理和目标识别,对神经网络的可靠性有很高的要求。在实现自动驾驶时,神经网络的数据存储在计算机的内存和高速缓存中,由于单粒子入射、电压降低、温度和老化,以及工艺偏差,都可能造成神经网络的数据在存储过程中发生变化,即软错误。这些软错误可以改变存储的数据,进一步导致系统输出错误的结果,对目标物体错误分类,例如障碍物判断结果错误等,从而导致车祸等严重事故。
目前,通常采用的保护方法是采用硬件纠错电路(Error Detection AndCorrection,EDAC)与存储器相结合,即采用校验码的方式对存储器的保护,可以避免存储过程数据出错。常用的EDAC技术包括海明码和BCH码,海明码是一种能检测两位错误纠正一位错误的线性分组码。对于32位处理器来说,要对32位信息位进行纠1位错,则其校验位K应为7位。海明码原理复杂度低,在进行编码译码时,产生延时不大,但其无法解决多位错误问题。通过分组进行海明码来解决多位错误纠错能力问题固然可行,然而此方法只对组间产生的多位错误有效,对于组内产生的多位错误仍然无效。而随着汽车电源电压的降低及纳米级工艺的日益发展,单粒子多位翻转多发生于连续区域。因此分组海明码仍然无法解决多位错误问题。BCH码具有多位纠错能力,随着其纠错能力的增大,其校验位数也随之增大。对于32位处理器来说,要对32位信息位进行纠4位错,则其校验位数应为24位。然而BCH译码原理复杂,在进行译码时,将产生较大延时。相关研究表明,海明码编码和译码的延时开销为1,BCH码的编码延时开销为1,译码延时开销为7。
之前有一部分工作,仅从硬件的层面提出对存储器的保护方法,以防止软错误引起的故障,但是它们以能耗、延迟和硬件成本为代价,难以布置到资源有限的自动驾驶系统上。有一部分工作仅从软件的层面保护应用程序免受软错误的影响,这些方法虽然可以根据软件的特性进行配置,但是不适用于自动驾驶的DNN。因此,现有的保护方法难以在自动驾驶上应用。
发明内容
本发明的目的是提供一种基于自动驾驶的神经网络数据存储方法及系统,以提高数据存储的准确性,提高自动驾驶的安全性能。
为实现上述目的,本发明提供了如下方案:
一种基于自动驾驶的神经网络数据存储方法,包括:
获取存储空间;所述存储空间包括多个类型的存储区块,不同类型的存储区块采用不同的纠检错编码,不同类型的存储区块的可靠性不同;
获取根据自动驾驶要求构建的神经网络模型;
对所述神经网络模型中每个神经元的脆弱度进行分析,得到每个神经元的脆弱度;
根据每个神经元的脆弱度和所述存储区块的类型,将所有的神经元进行分类,得到多个类别的神经元集合;所述神经元集合的类别和所述存储区块的类别相同;
采用图染色算法,将多个类别的神经元分别存储至所述存储空间的存储区块中;可靠性越高的存储区块中存储的神经元的脆弱度越高。
可选的,所述存储空间具体包括3个类型的存储区块,分别为第一类存储区块、第二类存储区块和第三类存储区块;所述第一类存储区块的纠检错编码为奇偶校验码,所述第二类存储区块的纠检错编码为海明码,所述第三类存储区块的纠检错编码为BCH码;所述第一类存储区块的可靠性小于所述第二类存储区块的可靠性,所述第二类存储区块的可靠性小于所述第三类存储区块的可靠性。
可选的,所述对所述神经网络模型中每个神经元的脆弱度进行分析,得到每个神经元的脆弱度,具体包括:
获取每个神经元的结构性脆弱因子;
获取每个神经元的容错性因子;
根据每个神经元的数据特性,确定每个神经元的M因子;所述神经元的M因子为所述神经元中所有权重值的M因子的总和;当所述权重值为浮点数时,所述权重值的M因子为权重值高阶指数位中0的位数与权重值总位数的比值;当所述权重值为定点数时,所述权重值的M因子为权重值整数位中0的位数与权重值总位数的比值;
根据每个神经元的结构性脆弱因子、容错性因子和M因子,确定所述神经元的脆弱度;所述神经元的脆弱度为所述结构性脆弱因子、所述容错性因子和所述M因子的乘积。
可选的,所述神经元的结构性脆弱因子为所述神经元的驻留时间。
可选的,所述采用图染色算法,将分类后的神经元存储至所述存储空间的存储区块中,具体包括:
根据每个类别的存储区块的个数,将每个类别的神经元划分为多个神经元子集合;同一类别中所述神经元子集合的个数与对应类别的存储区块的个数相同;
将每个神经元子集合中的数据存储至对应的存储区块中;
采用图染色算法,将每个神经元子集合和对应的存储区块之间建立映射关系;
根据所述映射关系,生成分区表;所述分区别用于记录所述存储区块对应的所述神经元子集合中每个神经元在所述神经网络模型中的位置。
本发明还提供一种基于自动驾驶的神经网络数据存储系统,包括:
存储空间获取模块,用于获取存储空间;所述存储空间包括多个类型的存储区块,不同类型的存储区块采用不同的纠检错编码,不同类型的存储区块的可靠性不同;
神经网络模型获取模块,用于获取根据自动驾驶要求构建的神经网络模型;
脆弱度分析模块,用于对所述神经网络模型中每个神经元的脆弱度进行分析,得到每个神经元的脆弱度;
神经元分类模块,用于根据每个神经元的脆弱度和所述存储区块的类型,将所有的神经元进行分类,得到多个类别的神经元集合;所述神经元集合的类别和所述存储区块的类别相同;
存储模块,用于采用图染色算法,将多个类别的神经元分别存储至所述存储空间的存储区块中;可靠性越高的存储区块中存储的神经元的脆弱度越高。
可选的,所述存储空间具体包括3个类型的存储区块,分别为第一类存储区块、第二类存储区块和第三类存储区块;所述第一类存储区块的纠检错编码为奇偶校验码,所述第二类存储区块的纠检错编码为海明码,所述第三类存储区块的纠检错编码为BCH码;所述第一类存储区块的可靠性小于所述第二类存储区块的可靠性,所述第二类存储区块的可靠性小于所述第三类存储区块的可靠性。
可选的,脆弱度分析模块具体包括:
结构性脆弱因子获取单元,用于获取每个神经元的结构性脆弱因子;
容错性因子获取单元,用于获取每个神经元的容错性因子;
M因子确定单元,用于根据每个神经元的数据特性,确定每个神经元的M因子;所述神经元的M因子为所述神经元中所有权重值的M因子的总和;当所述权重值为浮点数时,所述权重值的M因子为权重值高阶指数位中0的位数与权重值总位数的比值;当所述权重值为定点数时,所述权重值的M因子为权重值整数位中0的位数与权重值总位数的比值;
脆弱度确定单元,用于根据每个神经元的结构性脆弱因子、容错性因子和M因子,确定所述神经元的脆弱度;所述神经元的脆弱度为所述结构性脆弱因子、所述容错性因子和所述M因子的乘积。
可选的,所述神经元的结构性脆弱因子为所述神经元的驻留时间。
可选的,所述存储模块具体包括:
划分单元,用于根据每个类别的存储区块的个数,将每个类别的神经元划分为多个神经元子集合;同一类别中所述神经元子集合的个数与对应类别的存储区块的个数相同;
存储单元,用于将每个神经元子集合中的数据存储至对应的存储区块中;
映射关系建立单元,用于采用图染色算法,将每个神经元子集合和对应的存储区块之间建立映射关系;
分区表生成单元,用于根据所述映射关系,生成分区表;所述分区别用于记录所述存储区块对应的所述神经元子集合中每个神经元在所述神经网络模型中的位置。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明结合了自动驾驶使用的神经网络模型的特性和自动驾驶控制中硬件的特性,设计了面向神经网络的包括多个存储区块的容错存储空间,之前的工作仅考虑硬件或者软件层面。本申请采用不同的纠错码来保护存储器中不同的存储单元,从而使不同的存储单元具有不同的可靠性。而且,根据神经元脆弱度,使用图染色算法,将脆弱度高的神经元存储进可靠性高的存储单元中,从而完成神经元的可靠性存储。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于自动驾驶的神经网络数据存储方法的流程示意图;
图2为本发明基于自动驾驶的神经网络数据存储方法中神经元的容错性因子的推导示意图;
图3为本发明基于自动驾驶的神经网络数据存储方法中采用图染色算法进行存储的示意图;
图4为本发明基于自动驾驶的神经网络数据存储方法中分区表结构示意图;
图5为本发明基于自动驾驶的神经网络数据存储系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明基于自动驾驶的神经网络数据存储方法的流程示意图。如图1所示,本发明基于自动驾驶的神经网络数据存储方法包括以下步骤:
步骤100:获取存储空间。所述存储空间包括多个类型的存储区块,不同类型的存储区块采用不同的纠检错编码,不同类型的存储区块的可靠性不同。
在存储区块中,每次取一定位数的数据时,使用对应的纠错码进行纠错,可以纠正由软错误导致的错误。而采用不同的纠错码,对错误的纠正程度不同,所以存储区块的可靠性不同。不同可靠性存储区块的比例是设计存储器的一个重要的参数,反映了性能,可靠性和额外面积开销之间的权衡。此参数受到神经网络模型、网络权重参数等多因素影响,需要根据构建的神经网络模型进行调节。通过调节这个参数,可以使得存储空间适应更多的应用。
对不同类别的存储区块采用不同的纠检错编码,需要在不同的编码方式的速度和纠检错能力方面做出比较好的平衡。同时,纠检错编码的选择直接关系到存储空间的性能和软错误的容错能力。表1中列出了几种常见纠检错码,不同的纠检错编码具有不同的纠检错能力,面积开销和时间开销。
表1纠检错码对应的纠检错能力
Figure BDA0002303959830000061
Figure BDA0002303959830000071
从表1中可以看到性能开销较低的海明码对于1位错误有很好的纠检错能力,而对于多位错误则无能为力。而对多位错误有着很好纠错能力的BCH码性能开销却很高。根据实际需求,可以自行选择纠检错编码对不同类型的存储区块进行纠检错。
作为一个具体的实施例,本发明中的存储空间可以包括3个类型的存储区块,分别为第一类存储区块、第二类存储区块和第三类存储区块,三个类型的存储区块分别对应无纠检错、简单纠检错和复杂纠检错,那么3类存储区块的可靠性关系为:第一类存储区块的可靠性<第二类存储区块的可靠性<第三类存储区块的可靠性。此时,可以采用奇偶校验码作为第一类存储区块的纠检错编码,采用海明码作为第二类存储区块的纠检错编码,采用BCH码作为第三类存储区块的纠检错编码。
步骤200:获取根据自动驾驶要求构建的神经网络模型。在自动驾驶控制时,每个车辆的参数不同,对于驾驶要求也不同,因此,构建的神经网络模型也不同。此时,需要首先确定待研究的神经网络模型。
步骤300:对神经网络模型中每个神经元的脆弱度进行分析,得到每个神经元的脆弱度。
作为一个具体的实施例,本发明中从节点特性、容错特性和数据特性三方面,对每个神经元的脆弱度进行分析。
(1)节点特性
随着时间变化,一些节点被计算完成,脆弱度降低,而一些节点将被计算,脆弱度升高。同时,并不是所有软错误都会影响程序的正确执行,有一些软错误可以被屏蔽。为了预测软错误导致系统的失效率和被屏蔽的效应,现有技术中通过结构性脆弱因子(architectural vulnerability factor,AVF)来表示某段程序中由于软错误导致程序出错的可能性。结构性脆弱因子按比特分类,将影响最终输出结果的位称为ACE位,不影响的称为un-ACE位。AVF通过分析UN-ACE位来确定ACE位。并且确定了五种架构中UN-ACE的来源:NOP指令,Performance-enhancing指令,Predicated-false指令,Dynamically dead指令,Logical masking指令。
硬件结构的AVF的计算公式如下:
Figure BDA0002303959830000081
通常使用AVF来表现时间变化对节点脆弱度的影响。对于神经网络,神经元的种类和结构都是类似且有限的,都是由乘加运算构成的,所以ACE位的比例是相等的。不过,不同的神经网络结构中神经元的驻留时间不同。通过记录单个神经元中每个权重值在内存中的驻留时间,从而得出该神经元在内存中的总驻留时间。因此,本步骤中使用每个神经元的驻留时间作为该神经元的AVF,用于刻画神经元的节点特性。
(2)容错特性
神经网络本身有一定的容错性。有些神经元中的权重值出现了偏差不一定会影响最终的输出结果。但是,有些权重值的偏差却可能造成最终结果的错误。假如有一个神经元受到软错误的影响使得数据和原始数据有小的偏差,但是导致最终输出结果有较大的偏差,那么认为这个神经元是很重要的,应该采取可靠性高的保护手段来保证神经元中的数据不受干扰。向每个神经元随机地注入误差,并记录其对最终结果的影响,可以直观地确定该神经元的重要性。但是,这种方法不切实际,因为单个神经元的作用太小,无法在大型网络中观察到。
因此,基于神经网络的理论基础,使用
Figure BDA0002303959830000082
表示某个神经元的关键性。图2为本发明基于自动驾驶的神经网络数据存储方法中神经元的容错性因子的推导示意图,结合图2,具体的推导过程如下:
神经网络最后一层的输出
Figure BDA0002303959830000083
和样本真实值tk之间差距可以用成本函数表示,具体公式为:
Figure BDA0002303959830000084
第i个神经元的重要性程度可以用成本函数E对该神经元的输出yi求偏导来表示,如下所示:
Figure BDA0002303959830000091
那么,对于输出层的神经元,其重要性程度为:
Figure BDA0002303959830000092
其中,o表示输出层神经元的序号,to表示输出层的第o个神经元对应的目标值,yo表示输出层的第o个神经元的预测值。
对于第i个隐藏层中第j个神经元,其重要性程度为:
Figure BDA0002303959830000093
其中,δk表示第k个输出层神经元的偏导值,也是该神经元的重要性程度,
Figure BDA0002303959830000094
表示前一层神经元的输出和第k个输出层神经元的权重值对应相乘相加,并且加上第k个神经元的偏置值得到的结果,
Figure BDA0002303959830000095
表示输出层中第k个神经元的目标值,
Figure BDA0002303959830000096
表示输出层中第k个神经元的预测值,也是
Figure BDA0002303959830000097
经过激活函数得到的值。
Figure BDA0002303959830000098
表示该隐藏层神经元对第k个输出层神经元的输出的偏导,wkj表示这两个神经元之间连接的权重值。
在此步骤中,采用得到的每个神经元的偏导值即重要性程度
Figure BDA0002303959830000099
(隐含层)或
Figure BDA00023039598300000910
(输出层),来表示该神经元的容错特因子。
(3)数据特性
不同输入数据对神经元脆弱因子的影响也不一样。对于浮点数,在高阶指数位中从0到1的位翻转比从1到0的位翻转更可能导致数据损坏。这是因为神经网络中的正确值通常聚集在0附近。因此,幅度或符号位的微小偏差并不重要。而对于定点数,整数部分更容易受到软错误的影响,并且整数部分的错误更容易使数据的偏差变大,而相比较之下,小数部分的错误对数据的偏差影响没有那么大。总之,无论什么数据类型,我们都需要考虑数据本身对神经元脆弱度的影响。因为矩阵向量乘法运算占据了CNN总计算量的90%,网络的输入值是不变的,只有权重值是变化的,所以在数据层面,只考虑网络的权重值。
本发明采用数据相关的M因子来描述神经元的数据特性。在浮点数中,权重值的M因子的计算方式为M=权重值高阶指数位中0的位数/总位数。在定点数中,权重值的M因子的计算为M=权重值整数位中0的位数/总位数。然后,将神经元中每个权重值都计算其M因子并累加,从而得到该神经元的M因子。
在此步骤中,可以得到每个神经元的M因子,用来表示数据类型本身的特性。
根据以上三步,将每个神经元的结构性脆弱因子、容错性因子和M因子相乘,得到每个神经元的脆弱度因子。
对于神经网络的每一层,得到所有神经元脆弱度因子后可以算出平均值,可以得到该层整体的神经元脆弱度因子。
对于整个网络,得到每层的神经元脆弱度因子之后,求平均值,可以得到整个网络的神经元脆弱度因子。
根据神经元的脆弱度因子,可以评测不同的神经元、不同的网络层、不同的神经网络类型对软错误的容错能力,进而使用一些优化策略来提高神经网络的精度。此处,根据不同神经网络的脆弱度因子,将不同的神经元数据存储进不同可靠性的存储区块中,从而保证自动驾驶技术的可靠性,避免因为网络输出结果的误差而引起灾难性的后果。
步骤400:根据每个神经元的脆弱度和存储区块的类型,将所有的神经元进行分类,得到多个类别的神经元集合。所述神经元集合的类别和所述存储区块的类别相同。
步骤500:采用图染色算法,将多个类别的神经元分别存储至存储空间的存储区块中。可靠性越高的存储区块中存储的神经元的脆弱度越高。
图3为本发明基于自动驾驶的神经网络数据存储方法中采用图染色算法进行存储的示意图,结合图3,对存储过程进行说明。
根据神经元的脆弱度进行存储时,对每层神经元的脆弱度从低到高排序,使用图染色算法对具有不同脆弱度的神经元映射到具有不同保护程度的区域中,使得具有高脆弱度值的神经元将被存储在可靠性高的存储区块中,完成整个神经网络的存储。
以存储空间包括三个类型的存储区块为例,首先将整个神经网络中每层神经元脆弱度,从低到高进行排序,然后将整体的神经元数据分为三类。这三类的比例就是存储区块可靠性比例,可以根据实践进行调节。一般情况下,根据神经元的个数,将排序后的神经元按照个数平均分为三类,不同类的神经元数据映射到具有不同可靠性的存储区块中。由于一个存储区块容不下该类所有的神经元数据,因此采用多个相同的存储区块来存储,且多个相同的存储区块采用的纠检错码技术,即属于同一类的存储区块。为了实现每类神经元到各个不同的存储区块之间的映射,将各类神经元划分为多个神经元集合。每个神经元集合中的神经元个数是相等的,并且这个集合中神经元数据的总位数和一个存储区块所能容纳的位数相等,即一个神经元集合正好存储进一个存储区块中。
之后,采用图染色算法,将单个神经元集合和存储区块之间进行映射。传统的数据映射方法有很多种,但是,由于软件系统无法直接管理存储区块,所以无法精确地将神经元集合映射到相应的存储区块之间。为了实现对存储区块可靠性感知的分配策略,使用图染色算法建立映射关系。
由于同一层的神经元可能放入多个存储区块,一个存储区块也可能存储多个层的神经元数据,所以,为每个映射关系生成分区表,记录该存储区块内神经元在神经网络模型中的位置。图4为本发明基于自动驾驶的神经网络数据存储方法中分区表结构示意图。如图4所示,分区表由多个数据行组成。每个行表示一个存储区块数据区域,主要包括以下2个域:
1)ID:标识该存储区块编号;
2)神经元的位置信息:标识该数据区域中所有神经元在网络中层的位置信息.
至此,已经完成了不同脆弱度神经元到不同可靠性存储区块之间的映射。
在神经网络运行过程中,不同的神经元数据需要从存储器中读取来完成计算。在对存储器的读取过程中,系统通过当前神经网络运行的层和分区信息表中的神经元位置信息进行比对,获得存储相应神经元的存储区块ID。然后,对这些存储区块中的数据使用纠检错校验。最后,将这些数据读取。这个过程通过存储控制器完成。
对应于图1所述的基于自动驾驶的神经网络数据存储方法,本发明还提供一种基于自动驾驶的神经网络数据存储系统,图5为本发明基于自动驾驶的神经网络数据存储系统的结构示意图。如图5所示,所述基于自动驾驶的神经网络数据存储系统包括以下结构:
存储空间获取模块501,用于获取存储空间;所述存储空间包括多个类型的存储区块,不同类型的存储区块采用不同的纠检错编码,不同类型的存储区块的可靠性不同。
神经网络模型获取模块502,用于获取根据自动驾驶要求构建的神经网络模型。
脆弱度分析模块503,用于对所述神经网络模型中每个神经元的脆弱度进行分析,得到每个神经元的脆弱度。
神经元分类模块504,用于根据每个神经元的脆弱度和所述存储区块的类型,将所有的神经元进行分类,得到多个类别的神经元集合;所述神经元集合的类别和所述存储区块的类别相同。
存储模块505,用于采用图染色算法,将多个类别的神经元分别存储至所述存储空间的存储区块中;可靠性越高的存储区块中存储的神经元的脆弱度越高。
作为具体的实施例,本发明的基于自动驾驶的神经网络数据存储系统中所述存储空间具体包括3个类型的存储区块,分别为第一类存储区块、第二类存储区块和第三类存储区块;所述第一类存储区块的纠检错编码为奇偶校验码,所述第二类存储区块的纠检错编码为海明码,所述第三类存储区块的纠检错编码为BCH码;所述第一类存储区块的可靠性小于所述第二类存储区块的可靠性,所述第二类存储区块的可靠性小于所述第三类存储区块的可靠性。
作为具体的实施例,本发明的基于自动驾驶的神经网络数据存储系统中所述脆弱度分析模块503具体包括:
结构性脆弱因子获取单元,用于获取每个神经元的结构性脆弱因子。
容错性因子获取单元,用于获取每个神经元的容错性因子。
M因子确定单元,用于根据每个神经元的数据特性,确定每个神经元的M因子;所述神经元的M因子为所述神经元中所有权重值的M因子的总和;当所述权重值为浮点数时,所述权重值的M因子为权重值高阶指数位中0的位数与权重值总位数的比值;当所述权重值为定点数时,所述权重值的M因子为权重值整数位中0的位数与权重值总位数的比值。
脆弱度确定单元,用于根据每个神经元的结构性脆弱因子、容错性因子和M因子,确定所述神经元的脆弱度;所述神经元的脆弱度为所述结构性脆弱因子、所述容错性因子和所述M因子的乘积。
作为具体的实施例,本发明的基于自动驾驶的神经网络数据存储系统中所述神经元的结构性脆弱因子为所述神经元的驻留时间。
作为具体的实施例,本发明的基于自动驾驶的神经网络数据存储系统中所述存储模块具体包括:
划分单元,用于根据每个类别的存储区块的个数,将每个类别的神经元划分为多个神经元子集合;同一类别中所述神经元子集合的个数与对应类别的存储区块的个数相同。
存储单元,用于将每个神经元子集合中的数据存储至对应的存储区块中。
映射关系建立单元,用于采用图染色算法,将每个神经元子集合和对应的存储区块之间建立映射关系。
分区表生成单元,用于根据所述映射关系,生成分区表;所述分区别用于记录所述存储区块对应的所述神经元子集合中每个神经元在所述神经网络模型中的位置。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种基于自动驾驶的神经网络数据存储方法,其特征在于,包括:
获取存储空间;所述存储空间包括多个类型的存储区块,不同类型的存储区块采用不同的纠检错编码,不同类型的存储区块的可靠性不同;
获取根据自动驾驶要求构建的神经网络模型;
对所述神经网络模型中每个神经元的脆弱度进行分析,得到每个神经元的脆弱度;
根据每个神经元的脆弱度和所述存储区块的类型,将所有的神经元进行分类,得到多个类别的神经元集合;所述神经元集合的类别和所述存储区块的类别相同;
采用图染色算法,将多个类别的神经元分别存储至所述存储空间的存储区块中;可靠性越高的存储区块中存储的神经元的脆弱度越高。
2.根据权利要求1所述的基于自动驾驶的神经网络数据存储方法,其特征在于,所述存储空间具体包括3个类型的存储区块,分别为第一类存储区块、第二类存储区块和第三类存储区块;所述第一类存储区块的纠检错编码为奇偶校验码,所述第二类存储区块的纠检错编码为海明码,所述第三类存储区块的纠检错编码为BCH码;所述第一类存储区块的可靠性小于所述第二类存储区块的可靠性,所述第二类存储区块的可靠性小于所述第三类存储区块的可靠性。
3.根据权利要求1所述的基于自动驾驶的神经网络数据存储方法,其特征在于,所述对所述神经网络模型中每个神经元的脆弱度进行分析,得到每个神经元的脆弱度,具体包括:
获取每个神经元的结构性脆弱因子;
获取每个神经元的容错性因子;
根据每个神经元的数据特性,确定每个神经元的M因子;所述神经元的M因子为所述神经元中所有权重值的M因子的总和;当所述权重值为浮点数时,所述权重值的M因子为权重值高阶指数位中0的位数与权重值总位数的比值;当所述权重值为定点数时,所述权重值的M因子为权重值整数位中0的位数与权重值总位数的比值;
根据每个神经元的结构性脆弱因子、容错性因子和M因子,确定所述神经元的脆弱度;所述神经元的脆弱度为所述结构性脆弱因子、所述容错性因子和所述M因子的乘积。
4.根据权利要求3所述的基于自动驾驶的神经网络数据存储方法,其特征在于,所述神经元的结构性脆弱因子为所述神经元的驻留时间。
5.根据权利要求1所述的基于自动驾驶的神经网络数据存储方法,其特征在于,所述采用图染色算法,将分类后的神经元存储至所述存储空间的存储区块中,具体包括:
根据每个类别的存储区块的个数,将每个类别的神经元划分为多个神经元子集合;同一类别中所述神经元子集合的个数与对应类别的存储区块的个数相同;
将每个神经元子集合中的数据存储至对应的存储区块中;
采用图染色算法,将每个神经元子集合和对应的存储区块之间建立映射关系;
根据所述映射关系,生成分区表;所述分区别用于记录所述存储区块对应的所述神经元子集合中每个神经元在所述神经网络模型中的位置。
6.一种基于自动驾驶的神经网络数据存储系统,其特征在于,包括:
存储空间获取模块,用于获取存储空间;所述存储空间包括多个类型的存储区块,不同类型的存储区块采用不同的纠检错编码,不同类型的存储区块的可靠性不同;
神经网络模型获取模块,用于获取根据自动驾驶要求构建的神经网络模型;
脆弱度分析模块,用于对所述神经网络模型中每个神经元的脆弱度进行分析,得到每个神经元的脆弱度;
神经元分类模块,用于根据每个神经元的脆弱度和所述存储区块的类型,将所有的神经元进行分类,得到多个类别的神经元集合;所述神经元集合的类别和所述存储区块的类别相同;
存储模块,用于采用图染色算法,将多个类别的神经元分别存储至所述存储空间的存储区块中;可靠性越高的存储区块中存储的神经元的脆弱度越高。
7.根据权利要求6所述的基于自动驾驶的神经网络数据存储系统,其特征在于,所述存储空间具体包括3个类型的存储区块,分别为第一类存储区块、第二类存储区块和第三类存储区块;所述第一类存储区块的纠检错编码为奇偶校验码,所述第二类存储区块的纠检错编码为海明码,所述第三类存储区块的纠检错编码为BCH码;所述第一类存储区块的可靠性小于所述第二类存储区块的可靠性,所述第二类存储区块的可靠性小于所述第三类存储区块的可靠性。
8.根据权利要求6所述的基于自动驾驶的神经网络数据存储系统,其特征在于,所述脆弱度分析模块具体包括:
结构性脆弱因子获取单元,用于获取每个神经元的结构性脆弱因子;
容错性因子获取单元,用于获取每个神经元的容错性因子;
M因子确定单元,用于根据每个神经元的数据特性,确定每个神经元的M因子;所述神经元的M因子为所述神经元中所有权重值的M因子的总和;当所述权重值为浮点数时,所述权重值的M因子为权重值高阶指数位中0的位数与权重值总位数的比值;当所述权重值为定点数时,所述权重值的M因子为权重值整数位中0的位数与权重值总位数的比值;
脆弱度确定单元,用于根据每个神经元的结构性脆弱因子、容错性因子和M因子,确定所述神经元的脆弱度;所述神经元的脆弱度为所述结构性脆弱因子、所述容错性因子和所述M因子的乘积。
9.根据权利要求8所述的基于自动驾驶的神经网络数据存储系统,其特征在于,所述神经元的结构性脆弱因子为所述神经元的驻留时间。
10.根据权利要求6所述的基于自动驾驶的神经网络数据存储系统,其特征在于,所述存储模块具体包括:
划分单元,用于根据每个类别的存储区块的个数,将每个类别的神经元划分为多个神经元子集合;同一类别中所述神经元子集合的个数与对应类别的存储区块的个数相同;
存储单元,用于将每个神经元子集合中的数据存储至对应的存储区块中;
映射关系建立单元,用于采用图染色算法,将每个神经元子集合和对应的存储区块之间建立映射关系;
分区表生成单元,用于根据所述映射关系,生成分区表;所述分区别用于记录所述存储区块对应的所述神经元子集合中每个神经元在所述神经网络模型中的位置。
CN201911232552.4A 2019-12-05 2019-12-05 一种基于自动驾驶的神经网络数据存储方法及系统 Active CN111008699B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911232552.4A CN111008699B (zh) 2019-12-05 2019-12-05 一种基于自动驾驶的神经网络数据存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911232552.4A CN111008699B (zh) 2019-12-05 2019-12-05 一种基于自动驾驶的神经网络数据存储方法及系统

Publications (2)

Publication Number Publication Date
CN111008699A true CN111008699A (zh) 2020-04-14
CN111008699B CN111008699B (zh) 2022-06-07

Family

ID=70115407

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911232552.4A Active CN111008699B (zh) 2019-12-05 2019-12-05 一种基于自动驾驶的神经网络数据存储方法及系统

Country Status (1)

Country Link
CN (1) CN111008699B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965854A (zh) * 2021-04-16 2021-06-15 吉林大学 一种提升卷积神经网络可靠性的方法、系统及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160283842A1 (en) * 2014-03-06 2016-09-29 Progress, Inc. Neural network and method of neural network training
US20180330239A1 (en) * 2016-01-20 2018-11-15 Cambricon Technologies Corporation Limited Apparatus and method for compression coding for artificial neural network
US20180357530A1 (en) * 2017-06-13 2018-12-13 Ramot At Tel-Aviv University Ltd. Deep learning decoding of error correcting codes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160283842A1 (en) * 2014-03-06 2016-09-29 Progress, Inc. Neural network and method of neural network training
US20180330239A1 (en) * 2016-01-20 2018-11-15 Cambricon Technologies Corporation Limited Apparatus and method for compression coding for artificial neural network
US20180357530A1 (en) * 2017-06-13 2018-12-13 Ramot At Tel-Aviv University Ltd. Deep learning decoding of error correcting codes

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
WENBO ZHANG等: "A BP Neural Network Prediction Model Based on Dynamic Cuckoo Search Optimization Algorithm for Industrial Equipment Fault Prediction", 《IEEE》 *
王旭等: "基于神经元容错度分析的神经网络裁剪与近似计算技术研究", 《微电子学与计算机》 *
王珍珍等: "基于BCH算法的高速缓存纠检错方案研究", 《微电子学与计算机》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965854A (zh) * 2021-04-16 2021-06-15 吉林大学 一种提升卷积神经网络可靠性的方法、系统及设备
CN112965854B (zh) * 2021-04-16 2022-04-29 吉林大学 一种提升卷积神经网络可靠性的方法、系统及设备

Also Published As

Publication number Publication date
CN111008699B (zh) 2022-06-07

Similar Documents

Publication Publication Date Title
CN111259393B (zh) 一种基于生成对抗网络的恶意软件检测器抗概念漂移方法
Schorn et al. Efficient on-line error detection and mitigation for deep neural network accelerators
Schorn et al. An efficient bit-flip resilience optimization method for deep neural networks
Zhang et al. Velc: A new variational autoencoder based model for time series anomaly detection
Stutz et al. Bit error robustness for energy-efficient dnn accelerators
Sabbagh et al. Evaluating fault resiliency of compressed deep neural networks
Liu et al. Result-based re-computation for error-tolerant classification by a support vector machine
CN111008699B (zh) 一种基于自动驾驶的神经网络数据存储方法及系统
Joardar et al. Learning to train CNNs on faulty ReRAM-based manycore accelerators
Meng et al. A self-test framework for detecting fault-induced accuracy drop in neural network accelerators
Siddique et al. Exploring fault-energy trade-offs in approximate DNN hardware accelerators
Dong et al. CML: A contrastive meta learning method to estimate human label confidence scores and reduce data collection cost
Stutz et al. Random and adversarial bit error robustness: Energy-efficient and secure DNN accelerators
Poduval et al. Adaptive neural recovery for highly robust brain-like representation
Crafton et al. Improving compute in-memory ecc reliability with successive correction
Junior et al. Reliability of google’s tensor processing units for convolutional neural networks
Hu et al. Ice: An intelligent cognition engine with 3d nand-based in-memory computing for vector similarity search acceleration
US11727210B2 (en) Structured graph-to-text generation with two step fine-tuning
Yim Characterization of impact of transient faults and detection of data corruption errors in large-scale n-body programs using graphics processing units
US9658947B2 (en) Method for ranking fault-test pairs based on waveform statistics in a mutation-based test program evaluation system
CN116628612A (zh) 一种无监督异常检测方法、装置、介质及设备
Liu et al. Online fault detection in ReRAM-based computing systems by monitoring dynamic power consumption
CN115455945A (zh) 基于实体-关系的漏洞数据纠错方法和系统
Amarnath et al. Addressing soft error and security threats in dnns using learning driven algorithmic checks
Jang et al. MATE: Memory-and retraining-free error correction for convolutional neural network weights

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant