存储检查程序的计算机可读记录介质、信息处理设备和检查方法与流程

文档序号:31711549发布日期:2022-10-04 19:22阅读:79来源:国知局
存储检查程序的计算机可读记录介质、信息处理设备和检查方法与流程

1.本文中讨论的实施方式涉及用于检查神经网络的等同性的技术。


背景技术:

2.对于神经网络来说,存在许多框架。框架的示例包括tensorflow(注册商标)、pytorch(注册商标)和mxnet(注册商标)。
3.在一个框架中创建和训练的神经网络模型有时期望被移植到另一框架。例如,这是因为存在期望使用更快的框架的情况、或者期望用于提高处理能力的加速器仅由另一框架支持的情况。
4.在这种情况下,已经提出开放神经交换(onnx)作为用于在各种框架之间交换神经网络模型的格式。然而,onnx仍然不能在框架之间进行完整的转换。比如tensorflow和mxnet可以相互转换,但是tensorflow和pytorch不能相互转换。
5.在此,公开了关于用于比较第一学习模型和第二学习模型的行为的学习模型评估方法的技术。在这样的技术中,获得基于第一学习模型的第一执行结果和基于第二学习模型的第二执行结果,确定第一执行结果和第二执行结果是否满足逻辑公式,以及基于确定结果比较第一学习模型和第二学习模型的行为。
6.相关技术的示例包括如下:日本公开特许公开第2020-4178号。


技术实现要素:

7.技术问题
8.然而,存在难以检查指示要比较的神经网络(nn)在功能上是否相同的等同性的问题。将描述这样的问题。
9.图9是用于描述检查等同性的困难的参考图。如图9所示,将相同的数据输入至要比较的nna和nnb并比较输出结果以检查nn之间的等同性。
10.在此,在检查nn之间的等同性时,需要在以下几点考虑计算的等同性:(1)浮点数主要用于nn的计算,因此,需要考虑由于计算时的舍入误差引起的差异。(2)可能由取决于层的具有较小计算量的算法替代计算,因此,需要考虑由算法的差异引起的误差。例如,存在卷积由快速傅立叶变换(fft)替代的情况;(3)要比较的nn可以是其中具有多个层和多个层被融合的层,因此,需要考虑由于层结构的差异引起的误差。例如,存在由于诸如独立地具有卷积层(卷积)和偏置层(偏置)的nn以及具有其中融合了卷积层和偏置层的层的nn的层结构引起的差异的情况。
11.然而,即使对于整个要比较的nn对相同输入的输出进行比较,也难以确定输出的差异的原因是诸如舍入误差的误差还是nn的差异。例如,由于舍入误差和算法的差异引起的误差以及由于层结构的差异引起的误差对于功能同一性来说是可接受的,但是难以确定输出的差异的原因是这些误差还是nn的差异。此外,由于输出元素的数目小于输入元素的
数目,因此用于确定的材料较少。
12.因此,难以检查指示要比较的nn在功能上是否相同的等同性。
13.在一个方面,目的是检查指示要比较的神经网络在功能上是否相同的等同性。
14.问题解决方案
15.根据实施方式的一个方面,提供了一种存储检查程序的非暂态计算机可读记录介质,该检查程序用于使计算机执行以下处理。在示例中,该处理包括:获取要比较的神经网络;将所获取的要比较的神经网络从开端开始划分为各自的可比较的部分神经网络;将相同的数据输入至各自的划分的部分神经网络,并对输入数据的输出结果进行比较;以及在确定输出结果相等的情况下,重复划分处理和比较处理直到神经网络的末端。
16.本发明的目的和优点将借助于在权利要求中特别指出的元素和组合来实现和获得。
17.应当理解,前面的概括描述和下面的详细描述都是示例性和说明性的,而不是对本发明进行限制。
18.发明的有益效果
19.根据一个实施方式,可以检查指示要比较的神经网络在功能上是否相同的等同性。
附图说明
20.图1是示出根据实施方式的信息处理设备的功能配置的框图;
21.图2a是用于描述根据实施方式的部分nn比较的图;
22.图2b是用于描述根据实施方式的部分nn比较的图;
23.图3是用于描述根据实施方式的检查处理的图;
24.图4是示出根据实施方式的检查处理的流程图的示例的图;
25.图5是示出根据实施方式的部分nn搜索处理的流程图的示例的图;
26.图6是示出根据实施方式的部分nn搜索的示例的图;
27.图7是示出根据实施方式的部分nn搜索的其他示例的图;
28.图8是示出硬件配置示例的图;以及
29.图9是用于描述进行等同性的检查存在困难的图。
具体实施方式
30.在下文中,将参照附图详细描述检查程序、信息处理设备和检查方法的实施方式。注意,实施方式不限于本公开内容。此外,可以在没有不一致的范围内适当地组合实施方式。
31.图1是示出根据实施方式的信息处理设备的功能配置的框图。信息处理设备1获取要比较的两个神经网络(在下文中简称为“nn”),从每个神经网络(nn)的开端选择可比较的部分nn,并且以部分nn为单位检查两个nn在功能上是否相同。注意,在此提到的部分nn可以是nn中的单个层或者可以是其中组合多个层的层。
32.信息处理设备1具有目标nn获取单元10、部分nn搜索单元20、部分nn比较单元30和结果输出单元40。注意,目标nn获取单元10是获取单元的示例。部分nn搜索单元20是划分单
元的示例。部分nn比较单元30是比较单元的示例。
33.目标nn获取单元10获取要比较的两个nn。例如,目标nn获取单元10可以经由网络从外部设备获取要比较的两个nn,或者可以从预先存储的存储单元(未示出)获取要比较的两个nn。
34.部分nn搜索单元20从要比较的两个nn的开端搜索可比较的部分nn。
35.在此,部分nn的选择标准的示例包括层类型的同一性。层类型的示例包括卷积层、偏置层、密集层、重流层、重塑层、转置层、激活层等。每个nn中的每个层类型的名称存储在每个nn的模型中。注意,卷积层在下文中会被缩写为“卷积层(conv layer)”。
36.此外,部分nn的选择标准包括输出形状的同一性(即使维度顺序改变,其仍落入同一性的范围内)。此外,部分nn的选择标准包括当输入数据时最接近的输出位置的同一性。此外,部分nn的选择标准可以是层类型的同一性、输出形状的同一性和输出位置的同一性的组合。在下面的描述中,将以层类型的同一性作为示例进行描述。
37.例如,部分nn搜索单元20基于层类型从要比较的两个nn的开端选择最小的可比较的部分nn。然后,部分nn搜索单元20预先确定指示构成部分nn的层的最大数目的最大的部分nn大小,并选择具有等于或小于最大的部分nn大小的nn大小的较大的部分nn。选择较大的部分nn的原因是为了减少部分nn比较单元30的比较次数,这将在下面描述。也就是说,例如,部分nn搜索单元20在其中误差不增加的范围内选择尽可能大的部分nn,从而减少部分nn比较单元30进行比较的次数。
38.此外,当选择较大的部分nn时,部分nn搜索单元20基于下面的条件《1》和《2》来搜索部分nn。《1》在包括卷积层或密集层的情况下,部分nn仅包括一层。这是因为卷积层或密集层在一层中的计算量大,因此舍入误差趋于大。《2》在部分nn和紧随其后的层中,除一个层之外的层是逐元素线性变换层,或者是仅在数据形状上变化的层。这是因为如果层是逐元素线性变换层,则即使针对每一层添加舍入误差,舍入误差也相对小。同时,在诸如激活的非线性变换的情况下,很可能会丢失值的变化本身。此外,在层仅在数据形状上变化的情况下,值本身不会改变。注意,满足《2》的层包括例如偏置层、重塑层和转置层。
39.部分nn比较单元30将相同的数据输入至要比较的两个nn的相应的部分nn,并且对输入数据的输出结果进行比较。以部分nn为单位进行比较的原因是为了避免在后面的层中累积误差。将相同的数据输入至部分nn的原因是为了提高比较的准确性。
40.例如,部分nn比较单元30将相同的值输入给由部分nn搜索单元20选择的相应的nn的层权重。要输入的权重是均匀随机数或经过训练的权重,并且是可以由每个部分nn中使用的数据类型表示的值。然后,部分nn比较单元30从前面将相同的数据输入至相应的nn,进行前向传播,并获取输出结果。要输入的数据是均匀随机数等,并且是可以由每个部分nn中使用的数据类型表示的值。然后,部分nn比较单元30比较输出结果,并且在比较结果等于或小于预定的允许误差ε的情况下确定输出结果是在功能上相同的候选。另外,部分nn比较单元30从后面将相同的数据输入至相应的nn,执行反向传播,并获取输出结果。要输入的数据是均匀随机数等,并且是可以由每个部分nn中使用的数据类型表示的值。然后,部分nn比较单元30对输出结果和权重的梯度进行比较,并且在比较结果等于或小于预定的允许误差ε的情况下确定输出结果是在功能上相同的候选。然后,部分nn比较单元30在从前向传播和反向传播获取的确定结果都是在功能上相同的候选时确定确定结果在功能上相同。注意,
要输入至相应的nn的数据不限于一个,并且期望是多个数据。这是为了提高同一性确定的准确性。
41.此外,作为比较相应的nn的结果,在确定出相应的nn在功能上相同的情况下,部分nn比较单元30从要比较的nn中排除相应的nn。然后,针对排除之后的要比较的nn,重复由部分nn搜索单元20进行的搜索处理和由部分nn比较单元30进行的比较处理,直到排除之后的要比较的nn之一到达末端。
42.结果输出单元40在排除之后的要比较的nn都在末端时,输出指示要比较的nn在功能上相同的结果。此外,结果输出单元40在排除之后的要比较的nn中的两者之一在末端时,输出指示要比较的nn在功能上不相同的结果。此外,即使在部分nn搜索单元20没有搜索到部分nn的情况下,结果输出单元40也输出指示要比较的nn在功能上不相同的结果。
43.[部分nn比较的描述]
[0044]
在此,将参照图2a和图2b描述根据实施方式的部分nn比较。图2a和图2b是用于描述根据实施方式的部分nn比较的图。如图2a所示,部分nn搜索单元20基于层类型从要比较的两个nn的开端选择最小的可比较的部分nn。然后,部分nn比较单元30以部分nn为单位进行比较。
[0045]
在此,假设要比较的两个nn是nna和nnb。假设每一帧是每一层。由于nnb包含融合了卷积和偏置的层,因此在该单元中执行搜索处理和比较处理。例如,部分nn搜索单元20基于层类型选择从nna中提取的其中卷积层和偏置层被组合的部分nna以及从nnb中提取的作为其中卷积和偏置被融合的层的部分nnb。然后,部分nn比较单元30将所选择的部分nna与所选择的部分nnb进行比较。然后,当比较结果在功能上相同时,部分nn比较单元30转入下一部分nn的搜索和比较。也就是说,例如,部分nn搜索单元20基于层类型选择包括nna的重流层的部分nna和包括nnb的重流层的部分nnb。然后,部分nn比较单元30将所选择的部分nna与所选择的部分nnb进行比较。
[0046]
图2b示出了部分nna与部分nnb之间的比较。如图2b所示,部分nn比较单元30对相应的nn进行前向传播和反向传播,并且在前向传播的输出结果之间的差异和反向传播的输出结果之间的差异两者等于或小于允许误差ε时确定部分nn在功能上相同。注意,在图2b中,部分nna指示其中层a1和层a2被组合的部分nn。部分nnb指示包括层b1的部分nn。
[0047]
图2b中的左图示出了通过前向传播在部分nna与部分nnb之间进行的比较。部分nn比较单元30将相同的值输入给部分nna和部分nnb的层权重w。然后,部分nn比较单元30从前面将相同的数据输入至部分nna和部分nnb并执行前向传播,并且获取输出a和输出b。然后,部分nn比较单元30比较输出a和输出b,并且在比较结果等于或小于预定的允许误差ε时确定它们是在功能上相同的候选。
[0048]
图2b中的右图示出了通过反向传播在部分nna与部分nnb之间进行的比较。部分nn比较单元30将相同的值输入给部分nna和部分nnb的层权重w。然后,部分nn比较单元30从后面将相同的数据输入至相应部分nn并执行反向传播,并获取输出a'和输出b'。然后,部分nn比较单元30分别对输出a'和输出b'、权重w的梯度grad a1和grad b1以及权重w的梯度grad b1和grad b2进行比较,并且在所有的比较结果等于或小于预定的允许误差ε时确定它们是在功能上相同的候选。
[0049]
然后,部分nn比较单元30在从前向传播和反向传播获取的确定结果都是在功能上
相同的候选时确定部分nna和部分nnb在功能上相同。
[0050]
[检查处理的描述]
[0051]
在此,将参照图3描述根据实施方式的检查处理。图3是用于描述根据实施方式的检查处理的图。注意,如图3所示,假设要比较的两个nn是nna和nnb。假设每一帧是每一层。
[0052]
部分nn搜索单元20基于层类型从要比较的两个nn的开端搜索可比较的部分nn。在此,对于nna,选择其中组合了层a1和a2的部分nna。对于nnb,选择包括层b1的部分nnb。
[0053]
部分nn比较单元30对相应的nn进行前向传播和反向传播,并且在前向传播的输出结果之间的差异和反向传播的输出结果之间的差异两者等于或小于允许误差ε时确定部分nn在功能上相同。在此,数据被输入至一个部分nna并且通过前向传播和反向传播流动,并且相应的nna的输入数据被复制并提供给另一部分nnb并且通过前向传播和反向传播流动。将与部分nna相同的输入数据输入至部分nnb的原因是为了提高比较的准确性。然后,当从部分nna和部分nnb的前向传播输出的输出结果之间的差异等于或小于允许误差ε时,以及当从部分nna和部分nnb的反向传播输出的输出结果之间的差异等于或小于允许误差ε时,部分nna和部分nnb被确定为在功能上相同。以部分nn为单位进行比较的原因是为了避免在后面的层中累积误差。
[0054]
随后,部分nn搜索单元20基于层类型从排除了确定为相同的部分nn的两个nn中搜索可比较的部分nn。在此,对于nna,选择包括层a3的部分nna。对于nnb,选择包括层b2的部分nnb。
[0055]
部分nn比较单元30对相应的nn进行前向传播和反向传播,并且在部分nn的所有输出结果之间的差异等于或小于允许误差ε的情况下,确定部分nn在功能上相同。在此,数据被输入至一个部分nna并且通过前向传播和反向传播流动,并且相应的nna的输入数据被复制并提供给另一部分nnb并且通过前向传播和反向传播流动。然后,当从部分nna和部分nnb的前向传播输出的输出结果之间的差异等于或小于允许误差ε时,以及当从部分nna和部分nnb的反向传播输出的输出结果之间的差异等于或小于允许误差ε时,部分nna和部分nnb被确定为在功能上相同。
[0056]
随后,部分nn搜索单元20基于层类型从排除了确定为相同的部分nn的两个nn中搜索可比较的部分nn。在此,对于nna,选择其中层a4和a4组合的部分nna。对于nnb,选择包括层b3的部分nnb。
[0057]
部分nn比较单元30对相应的nn进行前向传播和反向传播,并且在部分nn的所有输出结果之间的差异等于或小于允许误差ε的情况下,确定部分nn在功能上相同。在此,数据被输入至一个部分nna并且通过前向传播和反向传播流动,并且相应的nna的输入数据被复制并提供给另一部分nnb并且通过前向传播和反向传播流动。然后,当从部分nna和部分nnb的前向传播输出的输出结果之间的差异等于或小于允许误差ε时,以及当从部分nna和部分nnb的反向传播输出的输出结果之间的差异等于或小于允许误差ε时,部分nna和部分nnb被确定为在功能上相同。
[0058]
然后,结果输出单元40输出指示在排除之后的要比较的nn都在末端时,要比较的nn在功能上相同的结果。也就是说,例如,当最终到达两个nn的底部时,两个nn整体上是等同的,因此结果输出单元40输出指示两个nn整体上是等同的结果。此外,结果输出单元40输出指示在排除之后的要比较的nn中的两者之一在末端时,要比较的nn在功能上不相同的结
果。
[0059]
[检查处理的流程图]
[0060]
图4是示出根据实施方式的检查处理的流程图的示例的图。注意,在图4中,将假设要检查的两个nn是nna和nnb来给出描述。
[0061]
首先,目标nn获取单元10获取要检查的nna和nnb(步骤s11)。然后,部分nn搜索单元20确定nna和nnb是否都为空(步骤s12)。也就是说,例如,部分nn搜索单元20确定是否已经检查了nna和nnb两者。
[0062]
在确定nna和nnb两者不为空的情况下(步骤s12;否),部分nn搜索单元20确定nna和nnb中的一个是否为空(步骤s13)。在确定nna和nnb都不为空的情况下(步骤s13;否),部分nn搜索单元20从nna和nnb的开端搜索部分nn候选(步骤s14)。注意,下面将描述用于搜索部分nn候选的部分nn搜索处理的流程图。
[0063]
然后,部分nn搜索单元20确定是否存在部分nn候选(步骤s15)。在确定不存在部分nn候选的情况下(步骤s15;否),部分nn搜索单元20确定nna和nnb不是等同的并且行进至步骤s19。
[0064]
另一方面,在确定存在部分nn候选的情况下(步骤s15;是),部分nn比较单元30确定部分nna和部分nnb是否等同(步骤s16)。例如,部分nn比较单元30将相同的值输入给部分nna的层权重和部分nnb的层权重。部分nn比较单元30从前面将相同的数据输入至部分nna和部分nnb并执行前向传播,并获取输出结果。部分nn比较单元30对输出结果进行比较并确定比较结果是否等于或小于预定的允许误差ε。另外,部分nn比较单元30从后面将相同的数据输入至部分nna和部分nnb并执行反向传播,并获取输出结果。部分nn比较单元30比较输出结果和权重的梯度。部分nn比较单元30对输出结果进行比较并确定比较结果是否等于或小于预定的允许误差ε。然后,在确定前向传播的输出结果和反向传播的输出结果全部等于或小于允许误差ε的情况下,部分nn比较单元30确定部分nna和部分nnb在功能上相同(等同)。在确定前向传播的输出结果和反向传播的输出结果中的任何一个不等于或小于允许误差ε的情况下,部分nn比较单元30确定部分nna和部分nnb在功能上不相同(不等同)。
[0065]
在确定部分nna和部分nnb不等同的情况下(步骤s16;否),部分nn搜索单元20行进至步骤s14以再次搜索部分nn候选。这是因为所选择的部分nn可能不同。
[0066]
同时,在确定部分nna和部分nnb等同的情况下(步骤s16;是),部分nn搜索单元20从nn中排除部分nn(步骤s17)。也就是说,例如,部分nn搜索单元20从nna中排除部分nna并且从nnb中排除部分nnb。然后,部分nn搜索单元20行进至步骤s12,以便在排除之后的nna和nnb中执行处理。
[0067]
在步骤s12中确定nna和nnb两者为空的情况下(步骤s12;是),部分nn搜索单元20输出指示nna和nnb等同的结果(步骤s18)。然后该过程终止检查处理。
[0068]
此外,在步骤s13中确定nna和nnb之一为空的情况下(步骤s13;是),部分nn搜索单元20输出指示nna和nnb不等同的结果(步骤s19)。然后该过程终止检查处理。
[0069]
[部分nn搜索处理的流程图]
[0070]
图5是示出根据实施方式的部分nn搜索处理的流程图的示例的图。注意,与图4类似,在图5中,将假设要检查的nn是nna和nnb来给出描述。
[0071]
部分nn搜索单元20基于层类型从nna和nnb的开端找到最小的可比较的部分nna和
部分nnb(步骤s21)。然后,部分nn搜索单元20确定部分nna和部分nnb的层数是否等于或小于最大的部分nn大小(步骤s22)。在确定部分nna和部分nnb的层数大于最大的部分nn大小的情况下(步骤s22;否),部分nn搜索单元20终止部分nn搜索处理。
[0072]
同时,在确定部分nna和部分nnb的层数等于或小于最大的部分nn大小的情况下(步骤s22;是),确定部分nna和部分nnb是否不包括卷积层或密集层(步骤s23)。在确定包括卷积层或密集层的情况下(步骤s23;否),部分nn搜索单元20终止部分nn搜索处理。也就是说,例如,这是在选择较大的部分nn时的条件《1》(在包括卷积层或密集层的情况下,部分nn仅包括一层)。这是因为卷积层和密集层在一层中的计算量大,因此舍入误差趋于大。
[0073]
在确定不包括卷积层或密集层的情况下(步骤s23;是),部分nn搜索单元20执行以下处理。部分nn搜索单元20确定部分nna、部分nnb和紧随其后的层中的不满足预定条件的层的数目是否为1或更少(步骤s24)。预定条件是该层是逐元素线性变换层,或者是仅在数据形状上变化的层。也就是说,例如,这是在选择较大的部分nn时的条件《2》(在部分nn和紧接其后的层中,除一个层之外的层是逐元素线性变换层,或者是仅在数据形状上变化的层)。这是因为如果层是逐元素线性变换层,则即使针对每一层添加舍入误差,舍入误差也相对小。此外,在仅在数据形状上变化的层的情况下,值本身不会改变。
[0074]
在确定部分nna、部分nnb和紧随其后的层中的不满足预定条件的层的数目并非等于或小于1,或者是等于或大于2的情况下(步骤s24;否),部分nn搜索单元20终止部分nn搜索处理。
[0075]
同时,在确定部分nna、部分nnb和紧随其后的层中的不满足预定条件的层的数目为等于或小于1的情况下(步骤s24;是),部分nn搜索单元20执行以下处理。部分nn搜索单元20将紧接在部分nna和部分nnb之后的层与部分nna和部分nnb组合(步骤s25)。然后,部分nn搜索单元20行进至步骤s22以便继续部分nn搜索处理。
[0076]
从而,由信息处理设备1执行的检查处理可以检查要比较的nn在功能上是否相同,同时减少舍入误差等的影响。
[0077]
[部分nn搜索的示例]
[0078]
图6是示出根据实施方式的部分nn搜索的示例的图。注意,假设要比较的两个nn是nnc和nnd。假设每一帧是每一层。此外,假设最大的部分nn大小例如为3。此外,重流层(relu layer)是非线性变换的层。偏置层和重塑层是线性变换并且仅在形状上变化的层。
[0079]
部分nn搜索单元20基于层类型从要比较的nnc和nnd的开端选择最小的可比较的部分nnc和部分nnd。在此,选择包括卷积层的部分nnc和部分nnd。然后,部分nn搜索单元20将包括卷积层的部分nnc和部分nnd设置为部分nn候选,这是由于部分nnc和部分nnd包括卷积层。然后,部分nn比较单元30将部分nnc与部分nnd进行比较,并检查它们在功能上是否相同。在此,假设部分nnc和部分nnd被确定为在功能上相同。然后,部分nn搜索单元20从nnc中排除部分nnc并且从nnd中排除部分nnd。
[0080]
接下来,部分nn搜索单元20基于层类型从排除之后的nnc和nnd的开端选择最小的可比较的部分nnc和部分nnd。在此,选择包括偏置层的部分nnc和部分nnd。然后,部分nn搜索单元20行进至下一处理,这是由于部分nn具有等于或小于最大的部分nn大小(“3”)的nn大小,并且部分nnc和部分nnd不包括卷积层或密集层。然后,部分nn搜索单元20将部分nnc和部分nnd与紧随其后的重流层组合,这是由于部分nnc、部分nnd和紧随其后的重流层中的不满
足条件的层的数目小于或等于1。由于重流层不是线性变换层,但是偏置层是线性变换层并且是仅在形状上变化的层,并且不满足条件的层的数目小于或等于1,因此重流层与每个部分nn组合。然后,部分nn搜索单元20行进至下一处理,原因是部分nn具有等于或小于最大的部分nn大小(“3”)的nn大小,并且部分nnc和部分nnd不包括卷积层或密集层。然后,部分nn搜索单元20将部分nnc和部分nnd与紧随其后的重塑层组合,这是由于部分nnc、部分nnd和紧随其后的重塑层中的不满足条件的层的数目小于或等于1。然后,部分nn搜索单元20将包括偏置层、重流层和重塑层的部分nnc和部分nnd设置为部分nn候选,这是由于部分nn具有等于或小于最大的部分nn大小(“3”)的部分nn大小而紧随其后的层包括卷积层或密集层。然后,部分nn比较单元30将部分nnc和部分nnd进行比较,并检查它们在功能上是否相同。在此,假设部分nnc和部分nnd被确定为在功能上相同。然后,部分nn搜索单元20从nnc中排除部分nnc并且从nnd中排除部分nnd。
[0081]
接下来,部分nn搜索单元20基于层类型从排除之后的nnc和nnd的开端选择最小的可比较的部分nnc和部分nnd。在此,选择包括密集层的部分nnc和部分nnd。然后,由于部分nn搜索单元20将包括密集层的部分nnc和部分nnd设置为部分nn候选,这是由于部分nnc和部分nnd包括密集层。然后,部分nn比较单元30对部分nnc和部分nnd进行比较,并检查它们在功能上是否相同。在此,假设部分nnc和部分nnd被确定为在功能上相同。然后,部分nn搜索单元20从nnc中排除部分nnc并且从nnd中排除部分nnd。
[0082]
接下来,部分nn搜索单元20基于层类型从排除之后的nnc和nnd的开端选择最小的可比较的部分nnc和部分nnd。在此,选择包括偏置层的部分nnc和部分nnd。然后,部分nn搜索单元20行进至下一处理,这是由于部分nn具有等于或小于最大的部分nn大小(“3”)的nn大小,并且部分nnc和部分nnd不包括卷积层或密集层。然后,部分nn搜索单元20将部分nnc和部分nnd与紧随其后的重流层组合,这是由于部分nnc、部分nnd和紧随其后的重流层中的不满足条件的层的数目小于或等于1。由于重流层不是线性变换层,但是偏置层是线性变换层并且是仅在形状上变化的层,并且不满足条件的层的数目小于或等于1,因此重流层与每个部分nn组合。此后,部分nn比较单元30对部分nnc和部分nnd进行比较,并检查它们在功能上是否相同。
[0083]
然后,结果输出单元40在从其中排除了相同的部分nn的要比较的nnc和nnd都在末端时,输出指示要比较的nn在功能上相同的结果。相反,结果输出单元40在从其中排除了相同部分nn的要比较的nnc或nnd中的两者之一在末端时输出指示要比较的nn在功能上不相同的结果。
[0084]
[部分nn搜索的另一示例]
[0085]
图7是示出根据实施方式的部分nn搜索的另一示例的图。注意,假设要比较的两个nn是nne和nnf。假设每一帧是每一层。此外,假设最大的部分nn大小例如为2。此外,重流层是非线性变换的层。偏置层和重塑层是线性变换并且仅在形状上变化的层。
[0086]
部分nn搜索单元20基于层类型从要比较的nne和nnf的开端选择最小的可比较的部分nne和部分nnf。在此,nnf是其中融合了偏置和卷积的层。因此,选择包括卷积层和偏置层的部分nne,以及包括其中融合了卷积和偏置的层的部分nnf。然后,由于部分nn搜索单元20将包括卷积层的部分nne和部分nnf设置为部分nn候选,这是由于部分nne和部分nnf包括卷积层。然后,部分nn比较单元30对部分nne和部分nnf进行比较,并检查它们在功能上是否相
同。在此,假设部分nne和部分nnf被确定为在功能上相同。然后,部分nn搜索单元20从nne中排除部分nne并且从nnf中排除部分nnf。
[0087]
接下来,部分nn搜索单元20基于层类型从排除之后的nne和nnf的开端选择最小的可比较的部分nne和部分nnf。在此,选择包括重流层的部分nne和部分nnf。然后,部分nn搜索单元20行进至下一处理,这是由于部分nn具有等于或小于最大的部分nn大小(“2”)的nn大小,并且部分nne和部分nnf不包括卷积层或密集层。然后,部分nn搜索单元20将部分nne和部分nnf与紧随其后的重塑层组合,这是由于部分nne、部分nnf和紧随其后的重塑层中的不满足条件的层的数目小于或等于1。由于重流层不是线性变换层,但是重塑层是线性变换层并且是仅在形状上变化的层,并且不满足条件的层的数目小于或等于1,因此重塑层与每个部分nn组合。然后,部分nn搜索单元20将包括重流层和重塑层的部分nne和部分nnf设置为部分nn候选,这是由于部分nn具有等于或小于最大的部分nn大小(“2”)的部分nn大小,但是紧随其后的层包括卷积层或密集层。然后,部分nn比较单元30对部分nne和部分nnf进行比较,并检查它们在功能上是否相同。在此,假设部分nne和部分nnf被确定为在功能上相同。然后,部分nn搜索单元20从nne中排除部分nne并且从nnf中排除部分nnf。
[0088]
部分nn搜索单元20基于层类型从排除之后的nne和nnf的开端选择最小的可比较的部分nne和部分nnf。在此,nnf是其中偏置和密集融合的层。因此,选择包括密集层和偏置层的部分nne,以及包括其中融合了密集和偏置的层的部分nnf。然后,由于部分nn搜索单元20将包括密集层的部分nne和部分nnf设置为部分nn候选,这是由于部分nne和部分nnf包括密集层。然后,部分nn比较单元30对部分nne和部分nnf进行比较,并检查它们在功能上是否相同。在此,假设部分nne和部分nnf被确定为在功能上相同。然后,部分nn搜索单元20从nne中排除部分nne并且从nnf中排除部分nnf。
[0089]
接下来,部分nn搜索单元20基于层类型从排除之后的nne和nnf的开端选择最小的可比较的部分nne和部分nnf。在此,选择包括重流层的部分nne和部分nnf。此后,部分nn比较单元30对部分nne和部分nnf进行比较并检查它们在功能上是否相同。
[0090]
然后,结果输出单元40在从其排除了相同的部分nn的要比较的nnc和nnd都在末端时输出指示要比较nn在功能上相同的结果。相反,结果输出单元40在从其排除了相同的部分nn的要比较的nnc或nnd中的任一个在末端时输出指示要比较的nn在功能上不相同的结果。
[0091]
[实施方式的效果]
[0092]
根据上述实施方式,信息处理设备1获取要比较的神经网络。信息处理设备1将所获取的要比较的神经网络从开端开始划分为各自的可比较的部分神经网络。信息处理设备1将相同的数据输入至各自的划分的部分神经网络,并且对输入数据的输出结果进行比较。然后,在确定输出结果相等的情况下,信息处理设备1重复划分处理和比较处理,直到神经网络的末端。因此,信息处理设备1可以通过以可比较的部分神经网络为单位重复关于要比较的神经网络是否等同的比较,来检查指示要比较的神经网络在功能上是否相同的等同性。
[0093]
此外,根据上述实施方式,信息处理设备1基于层类型将要比较的神经网络划分为各自的部分神经网络。因此,信息处理设备1可以通过使用层类型来将要比较的神经网络划分为相同类型的部分神经网络,并且可以检查部分神经网络的功能同一性。
[0094]
此外,根据上述实施方式,信息处理设备1划分神经网络,使得即使在部分神经网络中包括卷积层或密集层时也仅包括一个层。因此,信息处理设备1可以通过仅使用部分神经网络中具有大计算量的一个层来防止舍入误差变大。因此,信息处理设备1可以在减少舍入误差的影响的同时准确地检查要比较的神经网络在功能上是否相同。
[0095]
此外,根据上述实施方式,信息处理设备1进一步划分部分神经网络,使得在部分神经网络中包括的层和紧随其后的层中,不满足舍入误差的影响变得不显著的预定条件的层的数目为等于或小于1。由此,对于包括在部分神经网络中的层,信息处理设备1可以通过将不满足舍入误差的影响变得不显著的条件的层的数目设置为等于或小于1来防止舍入误差变大。因此,信息处理设备1可以在减少舍入误差的影响的同时准确地检查要比较的神经网络在功能上是否相同。
[0096]
此外,根据上述实施方式,预定条件是该层是逐元素线性变换层或者是仅在数据形状上变化的层。因此,信息处理设备1可以通过将不满足预定条件的层的数目设置为等于或小于1来防止舍入误差变大。因此,信息处理设备1可以在减少舍入误差的影响的同时准确地检查要比较的神经网络在功能上是否相同。
[0097]
此外,根据上述实施方式,信息处理设备1针对各自的部分神经网络设置相同的权重,将相同的数据从前面输入至部分神经网络,并且对输出到后侧的输出结果进行比较。另外,信息处理设备1针对各自的部分神经网络设置相同的权重,将相同的数据从后侧输入至部分神经网络,并且对输出到前侧的输出结果和权重的梯度进行比较。因此,信息处理设备1可以通过共享关于要比较的部分神经网络的输入数据来提高比较的准确性。此外,信息处理设备1可以通过不仅比较输出结果而且还比较权重的梯度来进一步提高比较的准确性。
[0098]
[其他]
[0099]
注意,已经描述了假设要比较的nn的数目是两个的上述实施方式。也就是说,例如,信息处理设备1获取要比较的两个nn,从每个nn的开端选择可比较的部分nn,并且以部分nn为单位检查这两个nn在功能上是否相同。然而,要比较的nn的数目不限于两个,并且可以是三个或更多个。
[0100]
此外,除非另有说明,可以任意修改本文或附图中所指示的任何信息,包括处理程序、控制程序、具体名称以及各种类型的数据和参数。
[0101]
此外,附图中示出的每个设备的每个部件在功能上是概念性的,并且不一定必须如附图所示在物理上进行配置。换句话说,例如,每个设备的分布和集成的具体形式不限于附图中示出的那些。也就是说,例如,其全部或一部分可以根据各种类型的负载、使用情况等通过在功能上或物理上分布或集成在可选单元中来配置。
[0102]
此外,在每个设备中执行的单独处理功能的全部或任何部分可以由中央处理单元(cpu)以及由cpu分析和执行的程序来实现,或者可以通过布线逻辑实现为硬件。
[0103]
图8是示出硬件配置示例的图。如图8所示,信息处理设备1包括通信设备100、硬盘驱动器(hdd)110、存储器120和处理器130。此外,图8所示的单元通过总线等彼此连接。
[0104]
通信设备100是网络接口卡等,并且与其他设备进行通信。hdd 110存储激活图1所示的功能的数据库(db)和程序。
[0105]
处理器130从hdd 110等读取执行与图1所示的每个处理单元的处理类似的处理的程序,并且将其加载到存储器120中,从而激活实现参照图1等描述的每个功能的处理。例
如,该处理实现与信息处理设备1中包括的每个处理单元的功能类似的功能。具体地,例如,处理器130从hdd110等读取具有与目标nn获取单元10、部分nn搜索单元20、部分nn比较单元30、结果输出单元40等的功能类似的功能的程序。然后,处理器130执行以下处理,该处理执行与目标nn获取单元10、部分nn搜索单元20、部分nn比较单元30、结果输出单元40等类似的处理。
[0106]
如上所述,信息处理设备1操作为以下信息处理设备:其通过读取并执行程序来执行检查方法。此外,信息处理设备1还可以通过由介质读取设备从记录介质读取上述程序并执行上述读取程序来实现与上述实施方式的功能类似的功能。注意,其他实施方式中提到的程序不限于由信息处理设备1执行。例如,该实施方式可以类似地应用于另一计算机或服务器执行该程序的情况,或者它们协同执行该程序的情况。
[0107]
可以经由诸如因特网的网络分发该程序。此外,该程序可以记录在诸如硬盘、软盘(fd)、光盘只读存储器(cd-rom)、磁光盘(mo)或数字多功能盘(dvd)的计算机可读记录介质中,并且可以通过由计算机从记录介质读取来执行。
[0108]
本文中提供的所有示例和条件语言旨在用于帮助读者理解本发明和由发明人为促进本技术所贡献的构思的教学目的,并且不应被解释为对这样的具体列举的示例和条件的限制,本说明书中的这样的示例的组织也与本发明的优势和劣势的展示无关。尽管已经详细描述了本发明的一个或更多个实施方式,但是应当理解,在不脱离本发明的精神和范围的情况下可以对其进行各种改变、替换和变更。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1