1.本发明属于人工智能领域,尤其是涉及一种神经网络的设计方法以及相关装置。
背景技术:2.高能粒子入射sram型fpga时,会造成其内部存储单元发生单粒子翻转等软错误。尤其是随着半导体制造工艺的缩小,单粒子效应发生的概率更加明显。而随着先进工艺sram型fpga在人工智能、神经网络等方面的不断应用。单粒子效应对sram型fpga的影响亦需要格外的引起注意。一般观点认为,单粒子翻转主要会对sram型fpga上的应用设计造成如运算结果错误、运行中止、性能退化等,对系统而言具有负面影响的结果,影响神经网络的准确度。
技术实现要素:3.本技术提供一种神经网络的设计方法以及相关装置,该方法设计的神经网络的准确性高。
4.第一方面,本发明提供一种神经网络的设计方法,包括:从初始神经网络的比特流文件中获取必要位数据,得到必要位数据集合;所述必要位数据为影响所述初始神经网络性能的配置存储器数据;将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并基于所述更新必要位数据得到更新比特流文件;基于所述更新比特流文件得到最终神经网络。
5.其中,所述将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并基于所述更新必要位数据得到更新比特流文件的步骤,包括:逐一将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并逐一基于所述更新必要位数据得到更新比特流文件。
6.其中,所述逐一将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并逐一基于所述更新必要位数据得到更新比特流文件的步骤,包括:将所述必要位数据集合中第1个所述必要位数据进行翻转,得到第1个更新必要位数据;利用所述第1个更新必要位数据替换所述第1个所述必要位数据,得到第1个更新比特流文件;将所述必要位数据集合中第2个所述必要位数据进行翻转,得到第2个更新必要位数据;利用所述第2个更新必要位数据替换所述第2个所述必要位数据,得到第2个更新比特流文件;将所述必要位数据集合中第n个所述必要位数据进行翻转,加载包含了翻转的必要位的比特流文件并运行神经网络,根据神经网络运行结果,得到第n个更新必要位数据;其中,n大于等于1,且小于等于所述比特流文件的总位数;利用所述第n个更新必要位数据替换所述第n个所述必要位数据,得到第n个更新比特流文件。
7.其中,所述基于所述更新比特流文件得到最终神经网络的步骤,包括:在同一个系统中加载所述第1个更新比特流文件、得到第1个子神经网络,运行第1个子神经网络,获得第1个子神经网络的准确度,加载第2个更新比特流文件、得到第2个子神经网络,运行第2个
自神经网络,获得第2个子神经网络的准确度,加载第n个更新比特流文件,得到第n个子神经网络,运行第n个子神经网络,获得第n个子神经网络的准确度,最终,先后得到n个子神经网络,并获得n个所述子神经网络的准确度;基于所述n个所述子神经网络的准确度和所述初始神经网络的准确度得到所述最终神经网络。
8.其中,所述分别获得n个所述子神经网络的准确度的步骤,包括:分别利用n个所述子神经网络对同一组待测数据集进行处理,得到处理结果;分析所述处理结果的准确度,获取准确度小于第一阈值的处理结果的数目;基于所述待测数据集中待测数据的数目以及所述准确度小于第一阈值的处理结果的数目确定所述子神经网络的准确度。
9.其中,所述方法还包括:利用所述初始神经网络对待测数据集进行处理,得到处理结果;分析所述处理结果的准确度,获取准确度小于第二阈值的处理结果的数目;基于所述待测数据集中待测数据的数目以及所述准确度小于第二阈值的处理结果的数目确定所述初始神经网络的准确度。
10.其中,所述基于所述n个所述子神经网络的准确度和所述初始神经网络的准确度得到所述最终神经网络的步骤,包括:将n个所述子神经网络的准确度与所述初始神经网络的准确度进行比较,确定准确度大于或等于所述初始神经网络的准确度的子神经网络作为选中子神经网络;记录所述选中子神经网络中的更新必要位数据,利用所述选中子神经网络中的更新必要位数据对所述初始神经网络的比特流文件中对应的必要位数据进行替换,得到最终比特流文件;基于所述最终比特流文件得到所述最终神经网络。
11.第二方面,本发明还提供一种神经网络设计装置,包括:获取模块,用于从初始神经网络的比特流文件中获取必要位数据,得到必要位数据集合;所述必要位数据为影响所述初始神经网络性能的数据;翻转模块,用于将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并基于所述更新必要位数据得到更新比特流文件;神经网络确定模块,用于基于所述更新比特流文件得到最终神经网络。
12.第三方面,本发明还提供一种电子设备,包括相互藕接的硬件处理器以及存储器,其中,所述存储器用于存储实现上述任一项所述的方法的比特流文件;所述硬件处理器用于执行所述存储器存储的所述比特流文件。
13.第四方面,本发明还提供一种计算机可读存储介质,存储有比特流文件,所述比特流文件能够被执行以实现上述任一项所述的方法。
14.本发明的有益效果,区别于现有技术的情况,本发明的神经网络的设计方法包括:
15.从初始神经网络的比特流文件中获取必要位数据,得到必要位数据集合;所述必要位数据为影响所述初始神经网络性能的配置存储器数据;将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并基于所述更新必要位数据得到更新比特流文件;基于所述更新比特流文件得到最终神经网络。该方法设计的神经网络的准确性高。
16.通过以下参考附图的详细说明,本发明的其它方面和特征变得明显。但是应当知道,该附图仅仅为解释的目的设计,而不是作为本发明的范围的限定,这是因为其应当参考附加的权利要求。还应当知道,除非另外指出,不必要依比例绘制附图,它们仅仅力图概念地说明此处描述的结构和流程。
附图说明
17.图1为本发明神经网络的设计方法的一实施例的流程示意图;
18.图2为必要位文件的一实施例的示意图;
19.图3为必要位数据文件的一实施例的示意图;
20.图4为必要位位置故障注入脚本的一实施例的示意图;
21.图5为本发明神经网络的设计装置的一实施例的流程示意图;
22.图6为本发明电子设备的一实施例的结构示意图;
23.图7为本发明计算机可读存储介质的一实施例的结构示意图。
具体实施方式
24.为了进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及具体实施方式,对本发明进行详细说明。有关本发明的前述及其他技术内容、特点及功效,在以下配合附图的具体实施方式详细说明中即可清楚地呈现。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。所附附图仅是提供参考与说明之用,并非用来对本发明的技术方案加以限制。
25.高能粒子入射sram型fpga时,会造成其内部存储单元发生单粒子翻转等软错误。尤其是随着半导体制造工艺的缩小,单粒子效应发生的概率更加明显。而随着先进工艺sram型fpga在人工智能、神经网络等方面的不断应用。单粒子效应对sram型fpga的影响亦需要格外的引起注意。一般观点认为,单粒子翻转主要会对sram型fpga上的应用设计造成如运算结果错误、运行中止、性能退化等,对系统而言具有负面影响的结果。以往的相关研究也主要围绕如何高效、准确地测量不同粒子入射导致的单粒子翻转截面,或者如何采取措施缓解单粒子翻转效应的发生。忽略了某些单粒子翻转对sram型fpga上的应用设计也可能造成如提升性能、降低功耗等此类正面影响。也就更未涉及如何基于单粒子翻转提升sram型fpga上应用设计性能。随着神经网络实现在sram型fpga上的不断深入,单粒子翻转对sram型fpga上神经网络实现的影响亦引起人们的关注。而如若继续不对单粒子翻转的影响进行分类利用,而是直接对所有对sram型fpga上神经网络设计有影响的单粒子翻转全部进行处理,就会明显加大单粒子翻转处理的工作量,既影响设计性能亦会错失合理利用单粒子翻转提升sram型fpga上神经网络识别准确度的机会。
26.特别是对于sram型fpga而言,其具有可重配置特征,可对配置存储器进行多次配置,这为细化配置存储器单粒子翻转影响提供了极大的方便,也为基于单粒子翻转提升sram型fpga上神经网络设计识别准确度提供了基础。
27.针对上述存在的现实及问题,本发明提出一种神经网络的设计方法,该神经网络运行于sram型fpga上。通过这种方法,可以实现无需通过设计复杂算法、仅需要对sram型fpga配置存储器中有正面影响的必要位进行翻转就可以达到对sram型fpga上神经网络识别准确度的提升;可以通过对比分析单粒子翻转发生前后sram型fpga上神经网络识别准确度的变化,对sram型fpga上的单粒子翻转进行精准分类标识,即做到明确哪些必要位发生单粒子翻转会导致sram型fpga上神经网络识别准确度下降,哪些必要位发生单粒子翻转能够提升sram型fpga上神经网络识别准确度。具体结合附图以及具体实施例对本技术进行说明。
28.请参见图1,为本发明神经网络的设计方法的第一实施例的流程示意图,具体包括:
29.步骤s11:从初始神经网络的比特流文件中获取必要位数据,得到必要位数据集合;所述必要位数据为影响所述初始神经网络性能的配置存储器数据。
30.具体的,本技术的神经网络运行于sram型fpga上,利用训练样本集训练得到初始神经网络后,可生成其原始比特流文件。从原始比特流文件中挑选出必要位数据,得到必要位数据集合。需要说明的是,该必要位数据为影响初始神经网络性能的配置存储器数据,将该必要位数据所在的位置认为是故障注入位置。
31.请结合图2和图3,图2为比特流文件中必要位文件的示意图,其中,每行中的数据“1”所处位置,即表示该位置为必要位位置。则图3中对应位置的数据即为必要位数据。必要位数据可为“0”或者“1”。如图3中第1609行所圈注的“1”和第1610行所圈注的“0”都为必要位数据。
32.步骤s12:将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并基于所述更新必要位数据得到更新比特流文件。
33.具体的,对必要位位置数据根据其偏移位置进行单粒子翻转。需要说明的是,在配置存储器中,数据以“0”和“1”的形式存储,若当前必要位数据为“1”,对其进行翻转后,得到的更新必要位数据即为“0”;若当前必要位数据为“0”,对其进行反翻转后,得到的更新必要位数据即为“1”。对目标必要位位置数据进行翻转后,得到更新必要位数据,基于更新必要位数据得到更新比特流文件。
34.在第一实施例中,首先基于必要位位置数据创建故障注入脚本,请结合图4,为故障注入脚本的第一实施例的示意图,图中包括故障注入的偏移word位置以及故障注入的偏移bit位置。基于故障注入脚本找到必要位数据,然后对必要位数据进行翻转。
35.在本技术的一实施例中,逐一将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并逐一基于所述更新必要位数据得到更新比特流文件。
36.具体的,将所述必要位数据集合中第1个所述必要位数据进行翻转,得到第1个更新必要位数据;利用所述第1个更新必要位数据替换所述第1个所述必要位数据,得到第1个更新比特流文件。
37.将所述必要位数据集合中第2个所述必要位数据进行翻转,得到第2个更新必要位数据;利用所述第2个更新必要位数据替换所述第2个所述必要位数据,得到第2个更新比特流文件。
38.将所述必要位数据集合中第n个所述必要位数据进行翻转,得到第n个更新必要位数据;其中,n大于等于1,且小于等于所述比特流文件的总位数;利用所述第n个更新必要位数据替换所述第n个所述必要位数据,得到第n个更新比特流文件。
39.假设必要位数据集合中有3个必要位数据,则会得到3个更新比特流文件。
40.步骤s13:基于所述更新比特流文件得到最终神经网络。
41.加载所述第1个更新比特流文件、运行第1个子神经网络,获得第1个子神经网络的准确度,加载第2个更新比特流文件、得到第2个子神经网络,运行第2个自神经网络,获得第2个子神经网络的准确度,加载第3个更新比特流文件,得到第3个子神经网络,运行第3个子神经网络,获得第3个子神经网络的准确度,最终,先后得到3个子神经网络,并获得3个所述
子神经网络的准确度。
42.需要说明的是,每一个子神经网络相对于初始神经网络而言,仅更新了单个必要位数据。可以理解的是,如果初始神经网络中具有n个必要位数据,则分别对n个必要位数据进行翻转,并分别生成子神经网络,子神经网络的数量为n。
43.在得到n个子神经网络后,分别运行n个所述子神经网络,并获得n个所述子神经网络的准确度;基于所述n个所述子神经网络的准确度和所述初始神经网络的准确度得到所述最终神经网络。
44.具体的,在一实施例中,分别利用n个所述子神经网络对同一组待测数据集进行处理,得到处理结果;分析所述处理结果的准确度,获取准确度小于第一阈值的处理结果的数目;基于所述待测数据集中待测数据的数目以及所述准确度小于第一阈值的处理结果的数目确定所述子神经网络的准确度。
45.在一实施例中,可通过如下公式计算子神经网络的准确度:
46.σ=(m-m)/m;
47.其中,m为待测数据集中待测数据的数目,m为准确度小于第一阈值的处理结果的数目。
48.假设待测数据集中待测数据总量为6,则分别利用n个所述子神经网络对待测数据集进行处理,得到处理结果。具体的,设第1个子神经网络对待测数据集进行处理,得到处理结果为(a11、a12、
……
、a16),第2个子神经网络对待测数据集进行处理,得到处理结果为(a21、a22、
……
、a26),第n个子神经网络对待测数据集进行处理,得到处理结果为(an1、an2、
……
、an6)。
49.分析第1个子神经网络的处理结果(a11、a12、
……
、a16)的准确度,获取准确度小于第一阈值的处理结果的数目,第一阈值可以自定义,例如可以定义第一阈值为80%、90%、95%等,具体不做限定。假设处理结果a11、a13、a15的准确度小于第一阈值,则此时准确度小于第一阈值的处理结果的数目为3,那么第1个子神经网络的准确度为(6-3)/6=0.5。分析第2个子神经网络的处理结果(a21、a22、
……
、a26)的准确度,获取准确度小于第一阈值的处理结果的数目。假设处理结果a21、a23的准确度小于第一阈值,则此时准确度小于第一阈值的处理结果的数目为2,那么第2个子神经网络的准确度为(6-2)/6=0.67。分析第n个子神经网络的处理结果(an1、an2、
……
、an6)的准确度,获取准确度小于第一阈值的处理结果的数目。假设处理结果an1、an3、an5、an4的准确度小于第一阈值,则此时准确度小于第一阈值的处理结果的数目为4,那么第n个子神经网络的准确度为(6-4)/6=0.33。
50.进一步的,本技术还需要确定初始神经网络的准确度。具体的,利用所述初始神经网络对待测数据集进行处理,得到处理结果;分析所述处理结果的准确度,获取准确度小于第二阈值的处理结果的数目;基于所述待测数据集中待测数据的数目以及所述准确度小于第二阈值的处理结果的数目确定所述初始神经网络的准确度。
51.假设准确度小于第二阈值的处理结果的数目为3,则初始神经网络的准确度为(6-3)/6=0.5。需要说明的是,第二阈值与第一阈值可以相同,也可以不同,具体根据实际需要设置。
52.将n个所述子神经网络的准确度与所述初始神经网络的准确度进行比较,确定准确度大于或等于所述初始神经网络的准确度的子神经网络作为选中子神经网络;记录所述
选中子神经网络中的更新必要位数据,利用所述选中子神经网络中的更新必要位数据对所述初始神经网络的比特流文件中对应的必要位数据进行替换,得到最终比特流文件;基于所述最终比特流文件得到所述最终神经网络。
53.继续以上述例子进行解释,初始神经网络的准确度为0.5;而第1个子神经网络的准确度为0.5,第2个子神经网络的准确度为0.67,第n个子神经网络的准确度为0.33,假设n为3,则第3个子神经网络的准确度为0.33。其中,第1个子神经网络的准确度和第2个子神经网络的准确度均大于或等于初始神经网络的准确度,此时选择第1个子神经网络和第2个子神经网络作为选中子神经网络。
54.记录第1个子神经网络和第2个子神经网络中经过翻转后得到的更新必要位数据,具体记录该更新必要位数据的位置,同时利用第1个子神经网络和第2个子神经网络对所述初始神经网络的比特流文件中对应的必要位数据进行替换,得到最终比特流文件,将最终比特流文件存储在配置存储器中,加载最终比特流文件即可得到最终神经网络。
55.本技术的神经网络的设计方法,实现了对sram型fpga配置存储器单粒子翻转的精细化分类,明确了哪些位置的单粒子翻转可以降低sram型fpga上神经网络识别准确度,哪些位置的单粒子翻转可以提升sram型fpga上神经网络识别准确度;有效地利用了能够提升sram型fpga上神经网络识别准确度的单粒子翻转,便捷地提升了sram型fpga上神经网络识别准确度;降低了sram型fpga对配置存储器单粒子翻转处理的工作量。
56.本发明所涉及的sram型fpga可以为不同类型的sram型fpga,可以对比特流文件进行多次加载。
57.请参见图5,为本发明神经网络的设计装置的一实施例的结构示意图,具体包括:获取模块41、翻转模块42以及神经网络确定模块43。
58.其中,获取模块41用于从初始神经网络的比特流文件中获取必要位数据,得到必要位数据集合;所述必要位数据为影响所述初始神经网络性能的数据。
59.翻转模块42用于将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并基于所述更新必要位数据得到更新比特流文件。
60.在一实施例中,翻转模块42用于逐一将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并逐一基于所述更新必要位数据得到更新比特流文件。
61.具体的,翻转模块42用于将所述必要位数据集合中第1个所述必要位数据进行翻转,得到第1个更新必要位数据;利用所述第1个更新必要位数据替换所述第1个所述必要位数据,得到第1个更新比特流文件;将所述必要位数据集合中第2个所述必要位数据进行翻转,得到第2个更新必要位数据;利用所述第2个更新必要位数据替换所述第2个所述必要位数据,得到第2个更新比特流文件;将所述必要位数据集合中第n个所述必要位数据进行翻转,得到第n个更新必要位数据;其中,n大于等于1,且小于等于所述比特流文件的总位数;利用所述第n个更新必要位数据替换所述第n个所述必要位数据,得到第n个更新比特流文件。
62.神经网络确定模块43用于基于所述更新比特流文件得到最终神经网络。
63.在一实施例中,神经网络确定模块43用于逐一加载、运行所述第1个更新比特流文件、第2个更新比特流文件、第n个更新比特流文件,得到n个子神经网络;分别获得n个所述子神经网络的准确度;基于所述n个所述子神经网络的准确度和所述初始神经网络的准确
度得到所述最终神经网络。
64.在一实施例中,神经网络确定模块43用于分别利用n个所述子神经网络对待测数据集进行处理,得到处理结果;分析所述处理结果的准确度,获取准确度小于第一阈值的处理结果的数目;基于所述待测数据集中待测数据的数目以及所述准确度小于第一阈值的处理结果的数目确定所述子神经网络的准确度。
65.在一实施例中,神经网络确定模块43用于利用所述初始神经网络对待测数据集进行处理,得到处理结果;分析所述处理结果的准确度,获取准确度小于第二阈值的处理结果的数目;基于所述待测数据集中待测数据的数目以及所述准确度小于第二阈值的处理结果的数目确定所述初始神经网络的准确度。
66.在一实施例中,神经网络确定模块43用于将n个所述子神经网络的准确度与所述初始神经网络的准确度进行比较,确定准确度大于或等于所述初始神经网络的准确度的子神经网络作为选中子神经网络;记录所述选中子神经网络中的更新必要位数据,利用所述选中子神经网络中的更新必要位数据对所述初始神经网络的比特流文件中对应的必要位数据进行替换,得到最终比特流文件;基于所述最终比特流文件得到所述最终神经网络。
67.请参见图6,为本发明电子设备的一实施例的结构示意图。电子设备包括相互连接的存储器82和硬件处理器81。
68.存储器82用于存储实现上述任意一项的方法的比特流文件。
69.硬件处理器81用于执行存储器82存储的比特流文件。
70.其中,硬件处理器81还可以称为cpu(central processing unit,中央处理单元)。硬件处理器81可能是一种集成电路芯片,具有信号的处理能力。硬件处理器81还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
71.存储器82可以为内存条、tf卡等,可以存储电子设备中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,电子设备才有记忆功能,才能保证正常工作。电子设备的存储器按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
72.在本技术所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方法实现。例如,以上所描述的装置实施方法仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方法,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
73.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方法方案的目
的。
74.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
75.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,系统服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方法的全部或部分步骤。
76.请参阅图7,为本发明计算机可读存储介质的结构示意图。本技术的存储介质存储有能够实现上述所有方法的比特流文件91,其中,该比特流文件91可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方法的全部或部分步骤。而前述的存储装置包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
77.以上仅为本发明的实施方法,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
技术特征:1.一种神经网络的设计方法,其特征在于,包括:从初始神经网络的比特流文件中获取必要位数据,得到必要位数据集合;所述必要位数据为影响所述初始神经网络性能的配置存储器数据;将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并基于所述更新必要位数据得到更新比特流文件;基于所述更新比特流文件得到最终神经网络。2.根据权利要求1所述的方法,其特征在于,所述将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并基于所述更新必要位数据得到更新比特流文件的步骤,包括:逐一将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并逐一基于所述更新必要位数据得到更新比特流文件。3.根据权利要求2所述的方法,其特征在于,所述逐一将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并逐一基于所述更新必要位数据得到更新比特流文件的步骤,包括:将所述必要位数据集合中第1个所述必要位数据进行翻转,得到第1个更新必要位数据;利用所述第1个更新必要位数据替换所述第1个所述必要位数据,得到第1个更新比特流文件;将所述必要位数据集合中第2个所述必要位数据进行翻转,得到第2个更新必要位数据;利用所述第2个更新必要位数据替换所述第2个所述必要位数据,得到第2个更新比特流文件;将所述必要位数据集合中第n个所述必要位数据进行翻转,得到第n个更新必要位数据;其中,n大于等于1,且小于等于所述比特流文件的总位数;利用所述第n个更新必要位数据替换所述第n个所述必要位数据,得到第n个更新比特流文件。4.根据权利要求3所述的方法,其特征在于,所述基于所述更新比特流文件得到最终神经网络的步骤,包括:逐一加载所述第1个更新比特流文件、第2个更新比特流文件、第n个更新比特流文件,得到n个翻转了必要位的子神经网络;分别在同一个系统上逐个运行n个所述子神经网络,并获得n个所述子神经网络的准确度;基于所述n个所述子神经网络的准确度和所述初始神经网络的准确度得到所述最终神经网络。5.根据权利要求4所述的方法,其特征在于,所述获得n个所述子神经网络的准确度的步骤,包括:分别利用n个所述子神经网络对同一组待测数据集进行处理,得到处理结果;分析所述处理结果的准确度,获取准确度小于第一阈值的处理结果的数目;基于所述待测数据集中待测数据的数目以及所述准确度小于第一阈值的处理结果的
数目确定所述子神经网络的准确度。6.根据权利要求4所述的方法,其特征在于,所述方法还包括:利用所述初始神经网络对待测数据集进行处理,得到处理结果;分析所述处理结果的准确度,获取准确度小于第二阈值的处理结果的数目;基于所述待测数据集中待测数据的数目以及所述准确度小于第二阈值的处理结果的数目确定所述初始神经网络的准确度。7.根据权利要求4所述的方法,其特征在于,所述基于所述n个所述子神经网络的准确度和所述初始神经网络的准确度得到所述最终神经网络的步骤,包括:将n个所述子神经网络的准确度与所述初始神经网络的准确度进行比较,确定准确度大于或等于所述初始神经网络的准确度的子神经网络作为选中子神经网络;记录所述选中子神经网络中的更新必要位数据,利用所述选中子神经网络中的更新必要位数据对所述初始神经网络的比特流文件中对应的必要位数据进行替换,得到最终比特流文件;基于所述最终比特流文件得到所述最终神经网络。8.一种神经网络设计装置,其特征在于,包括:获取模块,用于从初始神经网络的比特流文件中获取必要位数据,得到必要位数据集合;所述必要位数据为影响所述初始神经网络性能的数据;翻转模块,用于将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并基于所述更新必要位数据得到更新比特流文件;神经网络确定模块,用于基于所述更新比特流文件得到最终神经网络。9.一种电子设备,其特征在于,包括相互藕接的硬件处理器以及存储器,其中,所述存储器用于存储实现如权利要求1-7任一项所述的方法的比特流文件;所述硬件处理器用于执行所述存储器存储的所述比特流文件。10.一种计算机可读存储介质,其特征在于,存储有比特流文件,所述比特流文件能够被执行以实现如权利要求1-7任一项所述的方法。
技术总结本发明提供一种神经网络的设计方法以及相关装置,神经网络的设计方法包括:从初始神经网络的比特流文件中获取必要位数据,得到必要位数据集合;所述必要位数据为影响所述初始神经网络性能的配置存储器数据;将所述必要位数据集合中每一所述必要位数据进行翻转,得到更新必要位数据,并基于所述更新必要位数据得到更新比特流文件;基于所述更新比特流文件得到最终神经网络。该方法设计的神经网络的准确性高。性高。性高。
技术研发人员:杨卫涛 李培 贺朝会 吴龙胜 王斌
受保护的技术使用者:西安电子科技大学
技术研发日:2022.06.16
技术公布日:2022/11/1