基于卷积神经网络的数据处理方法、装置及设备与流程

专利查询2023-8-27  117



1.本技术涉及数据处理技术领域,尤其涉及一种基于卷积神经网络的数据处理方法、装置及设备。


背景技术:

2.逻辑门又称“数字逻辑电路基本单元”,其是在集成电路上执行“或”、“与”、“非”、“或非”、“与非”等逻辑运算的基本组件。任何复杂的逻辑电路都可由这些逻辑门组成,逻辑门已广泛应用于计算机、通信、控制和数字化仪表等领域。目前,可以利用数字逻辑专用芯片或通用处理器执行各种不同类型的逻辑运算处理,从而能够满足hash(哈希)算法、加密算法等计算机程序算法的实现需求。
3.随着基于卷积神经网络的深度学习算法的快速发展,卷积神经网络已在不同的技术领域得到了广泛的应用,而执行处理卷积神经网络任务的神经网络芯片(例如卷积神经网络推理芯片、asic(application specific integrated circuit,专用集成电路)芯片等)也在市场上有着广泛的运用。
4.然而,神经网络芯片的算子较为单一,主要以推理卷积运算为主,其无法直接处理逻辑运算,导致神经网络芯片功能受限,神经网络芯片的硬件资源利用率低,进而增加了神经网络芯片的开发成本和使用成本。


技术实现要素:

5.为解决或部分解决相关技术中存在的问题,本技术提供一种基于卷积神经网络的数据处理方法、装置及设备,能够实现在神经网络芯片上执行逻辑运算处理,可以提升神经网络芯片的硬件资源利用率和丰富芯片功能,降低神经网络芯片的开发成本和使用成本。
6.本技术第一方面提供一种基于卷积神经网络的数据处理方法,应用于处理器,所述方法包括:
7.将输入数据通过预处理得到预处理数据;
8.在卷积神经网络中根据不同逻辑运算需求,将所述预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据;
9.将所述运算数据经过后处理得到输出数据。
10.在一种实施方式中,所述将输入数据通过预处理得到预处理数据,包括:将输入的串行数据流转换通过拼接操作转换为矩阵数据块;
11.所将所述运算数据经过后处理得到输出数据,包括:将矩阵数据块格式的运算数据转换为串行数据流。
12.在一种实施方式中,所述将所述预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据,包括:
13.在与运算单元的第一卷积计算层将至少两通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到与运算单元的运算数据;或,
14.在或运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,再在第二卷积计算层进行第二卷积处理输出单通道卷积数据,得到或运算单元的运算数据;或,
15.在非运算单元的第一卷积计算层将单通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到非运算单元的运算数据;或,
16.在与非运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出至少两通道卷积数据后,通过第一激活函数层的激活函数进行处理,在第二卷积计算层将至少两通道卷积数据进行第二卷积处理输出单通道卷积数据,并通过第二激活函数层的激活函数进行处理,得到与非运算单元的运算数据。
17.在一种实施方式中,所述在与运算单元的第一卷积计算层将至少两通道预处理数据进行卷积处理输出单通道卷积数据,包括:在与运算单元的第一卷积计算层将至少两通道预处理数据进行相加,输出单通道卷积数据;或,
18.所述在或运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出单通道卷积数据,包括:在或运算单元的第一卷积计算层将至少两通道预处理数据进行相加再逐位取相反数,输出单通道卷积数据;所述在第二卷积计算层进行第二卷积处理输出单通道卷积数据,包括:在第二卷积计算层将数据逐位取相反数,输出单通道卷积数据;或,
19.所述在非运算单元的第一卷积计算层将单通道预处理数据进行卷积处理输出单通道卷积数据,包括:在非运算单元的第一卷积计算层将单通道预处理数据逐位取相反数,输出单通道卷积数据;或,
20.所述在与非运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出至少两通道卷积数据,包括:在与非运算单元的第一卷积计算层将至少两通道预处理数据进行相加,输出至少两通道卷积数据;所述在第二卷积计算层将至少两通道卷积数据进行第二卷积处理输出单通道卷积数据,包括:在第二卷积计算层将至少两通道卷积数据逐位取相反数,输出单通道卷积数据。
21.在一种实施方式中,所述将所述预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据,包括:
22.在异或运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出双倍通道卷积数据;
23.将所述双倍通道卷积数据分别执行或运算和与非运算;
24.将分别执行或运算和与非运算的结果执行与运算,得到异或运算单元的运算数据。
25.在一种实施方式中,所述在异或运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出双倍通道卷积数据,包括:
26.在异或运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理,将至少两通道预处理数据进行复制,并拼接出所述至少两通道的双倍通道卷积数据。
27.本技术第二方面提供一种基于卷积神经网络的数据处理装置,应用于处理器,所述装置包括:
28.预处理模块,用于将输入数据通过预处理得到预处理数据;
29.运算模块,用于在卷积神经网络中根据不同逻辑运算需求,将所述预处理模块得到的预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据;
30.后处理模块,用于将所述运算模块得到的运算数据经过后处理得到输出数据。
31.在一种实施方式中,所述运算模块包括:
32.与运算单元,用于在第一卷积计算层将至少两通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到与运算单元的运算数据;或,
33.或运算单元,用于在第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,再在第二卷积计算层进行第二卷积处理输出单通道卷积数据,得到或运算单元的运算数据;或,
34.非运算单元,用于在第一卷积计算层将单通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到非运算单元的运算数据;或,
35.与非运算单元,用于在第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出至少两通道卷积数据后,通过第一激活函数层的激活函数进行处理,在第二卷积计算层将至少两通道卷积数据进行第二卷积处理输出单通道卷积数据,并通过第二激活函数层的激活函数进行处理,得到与非运算单元的运算数据。
36.在一种实施方式中,所述运算模块还包括:
37.异或运算单元,用于在第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出双倍通道卷积数据;将所述双倍通道卷积数据分别通过所述或运算单元执行或运算和通过所述与非运算单元执行与非运算;将分别执行或运算和与非运算的结果通过所述与运算单元执行与运算,得到异或运算单元的运算数据。
38.本技术第三方面提供一种人工智能芯片,包括如上所述的基于卷积神经网络的数据处理装置。
39.本技术第四方面提供一种计算设备,所述计算设备包括上述的人工智能芯片。
40.本技术第五方面提供一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及上述人工智能芯片;
41.其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
42.所述存储器件,用于存储数据;
43.所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
44.所述控制器件,用于对所述人工智能芯片的状态进行监控。
45.本技术第六方面提供一种计算设备,包括:
46.处理器;以及
47.存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
48.本技术第七方面提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器执行如上所述的方法。
49.本技术提供的技术方案可以包括以下有益效果:
50.本技术提供的方法,应用于处理器,由处理器将输入数据通过预处理得到预处理数据后,可以在卷积神经网络中根据不同逻辑运算需求,将所述预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据;再将所述运算数据经过后处理得到输出数据。这样,可以利用卷积计算层和激活函数层来构建逻辑运算,实现神经网络芯片上也可以直接执行逻辑运算处理,从而提升了神经网络芯片的硬件资源利用率,丰富了神经网络芯片的芯片功能,降低了神经网络芯片的开发成本和使用成本。
51.进一步的,本技术提供的方法,处理器可以将串行数据流转换为矩阵数据块,使得输入数据能够被卷积神经网络接收处理,最后再将矩阵数据块格式的运算数据转换为串行数据流。
52.进一步的,本技术提供的方法,处理器可以根据不同的逻辑运算需求,分别构建与运算、或运算、非运算、与非运算、异或运算等处理方式,可以满足神经网络芯片的不同的逻辑运算处理任务。
53.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
54.通过结合附图对本技术示例性实施方式进行更详细地描述,本技术的上述以及其它目的、特征和优势将变得更加明显,其中,在本技术示例性实施方式中,相同的参考标号通常代表相同部件。
55.图1是本技术实施例示出的基于卷积神经网络的数据处理方法的流程示意图;
56.图2是本技术实施例示出的基于卷积神经网络的数据处理方法的另一流程示意图;
57.图3是本技术实施例示出的基于卷积神经网络的数据处理方法的另一流程示意图;
58.图4是本技术实施例示出的串行数据流与矩阵数据块的转换示意图;
59.图5是本技术实施例示出的与运算处理过程示意图;
60.图6是本技术实施例示出的或运算处理过程示意图;
61.图7是本技术实施例示出的非运算处理过程示意图;
62.图8是本技术实施例示出的与非运算处理过程示意图;
63.图9是本技术实施例示出的异或运算处理过程示意图;
64.图10是本技术实施例示出的基于卷积神经网络的数据处理装置的结构示意图;
65.图11是本技术实施例示出的基于卷积神经网络的数据处理装置的另一结构示意图;
66.图12是本技术实施例示出的人工智能芯片的结构框图;
67.图13是本技术实施例示出的板卡的结构框图;
68.图14是本技术实施例示出的计算设备的结构示意图。
具体实施方式
69.下面将参照附图更详细地描述本技术的实施方式。虽然附图中显示了本技术的实施方式,然而应该理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本技术更加透彻和完整,并且能够将本技术的范围完整地传达给本领域的技术人员。
70.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
71.应当理解,尽管在本技术可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
72.相关技术中,神经网络芯片无法直接处理逻辑运算,导致神经网络芯片的功能受限,神经网络芯片的硬件资源利用率低,进而增加了神经网络芯片的开发成本和使用成本。针对上述问题,本技术实施例提供一种基于卷积神经网络的数据处理方法,能够实现在神经网络芯片上执行逻辑运算处理,可以提升神经网络芯片的硬件资源利用率和丰富芯片功能,降低神经网络芯片的开发成本和使用成本。
73.本技术基于卷积神经网络的数据处理方法可应用于处理器中,该处理器可以是通用处理器,例如cpu(central processing unit,中央处理器),也可以是用于执行人工智能运算的人工智能处理器。人工智能运算可包括机器学习运算、类脑运算等。其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。该人工智能处理器可例如包括gpu(graphics processing unit,图形处理单元)、npu(neural-network processing unit,神经网络处理单元)、dsp(digital signal process,数字信号处理单元)、现场可编程门阵列(field-programmable gate array,fpga)芯片中的一种或组合。
74.该人工智能处理器可以是应用于人工智能芯片中的处理器。其中人工智能芯片例如可以是神经网络芯片或其他芯片,神经网络芯片例如可以是卷积神经网络推理芯片、asic芯片等。本技术对处理器的具体类型不作限制。
75.在一种可能的实现方式中,本技术中所提及的处理器可包括多个处理单元,每个处理单元可以独立运行所分配到的各种任务,如:卷积运算任务、池化任务或全连接任务等。本技术对处理单元及处理单元所运行的任务不作限制。处理器中的多个处理单元既可共用部分存储空间,例如共用部分ram存储空间和寄存器堆,又可同时拥有各自的存储空间。
76.以下结合附图详细描述本技术实施例的技术方案。
77.图1是本技术实施例示出的基于卷积神经网络的数据处理方法的流程示意图。该方法可应用于处理器,该处理器可以是人工智能芯片的处理器。
78.参见图1,该方法包括:
79.s101、将输入数据通过预处理得到预处理数据。
80.该步骤中,处理器可以将输入的串行数据流转换通过拼接操作转换为矩阵数据块。
81.其中,串行数据流(serial),是一种由“0”与“1”组成的数据流,例如110010101、101001110等。
82.在该步骤中,处理器可以接收设定字节长度的串行数据流,例如接收9位字节长度的串行数据流,如110010101。在其他实施方式中,也可以接收6位、12位、16位等不同字节长度的串行数据流,本技术对此不作限定。
83.在该步骤中,处理器可以对输入的串行数据流进行形式转换,转换为矩阵数据形式的矩阵数据块(matrix)。例如,可以将9位字节长度的串行数据流,转换为3
×
3矩阵形式的矩阵数据块。
84.s102、在卷积神经网络中根据不同逻辑运算需求,将预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据。
85.该步骤中,可以包括:
86.处理器在与运算单元的第一卷积计算层将至少两通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到与运算单元的运算数据;其中,在第一卷积计算层将至少两通道预处理数据进行相加,输出单通道卷积数据;或,
87.在或运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,再在第二卷积计算层进行第二卷积处理输出单通道卷积数据,得到或运算单元的运算数据;其中,在第一卷积计算层将至少两通道预处理数据进行相加再逐位取相反数,输出单通道卷积数据;在第二卷积计算层将数据逐位取相反数,输出单通道卷积数据;或,
88.在非运算单元的第一卷积计算层将单通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到非运算单元的运算数据;其中,在第一卷积计算层将单通道预处理数据逐位取相反数,输出单通道卷积数据;或,
89.在与非运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出至少两通道卷积数据后,通过第一激活函数层的激活函数进行处理,在第二卷积计算层将至少两通道卷积数据进行第二卷积处理输出单通道卷积数据,并通过第二激活函数层的激活函数进行处理,得到与非运算单元的运算数据;其中,在第一卷积计算层将至少两通道预处理数据进行相加,输出至少两通道卷积数据;在第二卷积计算层将至少两通道卷积数据逐位取相反数,输出单通道卷积数据。
90.该步骤还可以包括:处理器在异或运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出双倍通道卷积数据;将双倍通道卷积数据分别执行或运算和与非运算;将分别执行或运算和与非运算的结果执行与运算,得到异或运算单元的运算数据;其中,在第一卷积计算层将至少两通道预处理数据进行第一卷积处理,将至少两通道预处理数据进行复制,并拼接出至少两通道的双倍通道卷积数据。
91.s103、将运算数据经过后处理得到输出数据。
92.该步骤中,处理器可以将矩阵数据块格式的运算数据转换为串行数据流。
93.从该示例可以看出,本技术提供的方法,应用于处理器,由处理器将输入数据通过
预处理得到预处理数据后,可以在卷积神经网络中根据不同逻辑运算需求,将预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据;再将运算数据经过后处理得到输出数据。这样,可以利用卷积计算层和激活函数层来构建逻辑运算,实现神经网络芯片上也可以直接执行逻辑运算处理,从而提升了神经网络芯片的硬件资源利用率,丰富了神经网络芯片的芯片功能,降低了神经网络芯片的开发成本和使用成本。
94.图2是本技术实施例的基于卷积神经网络的数据处理方法的另一流程示意图。图2中描述了与运算、或运算和非运算的处理方式。
95.参见图2,该方法包括:
96.s201、接收输入的串行数据流。
97.串行数据流(serial),是一种由“0”与“1”组成的数据流,例如110010101、101001110等。在该步骤中,处理器可以接收设定字节长度的串行数据流,例如接收9位字节长度的串行数据流,如110010101。在其他实施方式中,也可以接收6位、12位、16位等不同字节长度的串行数据流,本技术对此不作限定。
98.s202、进行预处理,将输入的串行数据流转换为矩阵数据块。
99.在该步骤中,处理器可以对输入的串行数据流进行形式转换,转换为矩阵数据形式的矩阵数据块。例如,可以将9位字节长度的串行数据流,转换为3
×
3矩阵形式的矩阵数据块。
100.如图4所示,9位字节长度的串行数据流中,从右至左排序分别为第一位、第二位直到第九位,首先取前三位的三个字节,并按照从左到右的顺序置入3
×
3矩阵的最上一行;然后取中间三位的三个字节,并按照从左到右的顺序置入3
×
3矩阵的中间一行;最后取后三位的三个字节,并按照从左到右的顺序置入3
×
3矩阵的最下一行。可以理解的是,也可以按照其他顺序进行排序以得到3
×
3矩阵形式的矩阵数据块。
101.又如图5所示,以串行数据流110010101为例,拼接转换的方式可以是将9位字节长度的串行数据流,按照3
×
3形式放入矩阵,得到3
×
3矩阵形式的矩阵数据块,该过程如图5所标识的“s/m”转换过程:
102.将110010101转换为
103.这样,转换得到的矩阵数据块可以适配卷积神经网络中的卷积运算。
104.上述将串行数据流转换为矩阵数据块的操作可以称为数据预处理操作,可以利用“s/m”来表示。
105.s203、将进行预处理得到的矩阵数据块,分别根据不同逻辑运算需求,通过不同逻辑运算单元的卷积计算层和激活函数层进行不同处理,得到逻辑运算单元的运算数据。
106.其中,不同的逻辑运算需求可以是“或”、“与”、“非”、“或非”、“与非”、“异或”等逻辑运算需求。不同逻辑运算单元可以是“或运算单元”、“与运算单元”、“非运算单元”、“或非运算单元”、“与非运算单元”、“异或运算单元”等,这些逻辑运算单元也可以称为逻辑运算电路。
107.其中,在卷积神经网络中,可以构建卷积神经网络中的卷积计算层与激活函数层,
对卷积计算层中的卷积核、卷积处理时的填充、步长及偏置等卷积参数进行预先设定,对激活函数层中的激活函数类型进行预先设定,从而适配对应的逻辑运算需求,实现对至少一个矩阵数据块的逻辑运算处理。
108.以下分别介绍执行逻辑与运算、逻辑非运算和逻辑或运算的处理过程。
109.(1)逻辑与运算
110.在第一卷积计算层将至少两通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到与运算单元的运算数据;其中,在第一卷积计算层将至少两通道预处理数据进行相加,输出单通道卷积数据。
111.其中,以两通道输入为例但不局限于此,两通道输入的串行数据流分别转换为两通道矩阵数据块,矩阵数据块为3
×
3矩阵形式,两个矩阵数据块可以分别用a与b表示。
112.也就是说,对于“与”运算单元,数据经预处理操作后,分别经过卷积计算层和激活函数计算层处理,再经后处理操作,就可以得到“与”运算单元的输出结果。“与”运算单元的卷积核尺寸为3x3,对于卷积计算层而言是两通道输入单通道输出,该卷积计算层的卷积运算等价于两通道数据相加。卷积核参数如图5中所示。
113.在本实施例中,逻辑与运算表达式可以为:a∩b=relu(a+b-1)。
114.其中,卷积计算层的卷积核为3
×
3(即kernel=3x3),该卷积核是两通道卷积核,步长设置为1(即stride=1),填充为1(即padding=1),偏置值设置为-1(即bias=-1)。
115.其中,激活函数层中的激活函数可以是relu激活函数。
116.请一并参见图5,在一实施方式中,卷积计算层及激活函数层的处理过程包括:
117.1)、在卷积计算层将输入的两通道矩阵数据块根据卷积参数进行卷积处理。
118.该卷积处理中,卷积参数包括:padding=1,stride=1,bias=-1,对应两通道的卷积核为与
119.输入的两通道矩阵数据块,分别为:
120.矩阵数据块矩阵数据块
121.其中,矩阵数据块a由串行输入数据流110010101转换得到,矩阵数据块b由串行输入数据流101001110转换得到。
122.两通道矩阵数据块a和b在经过padding=1的填充处理后,分别为与
123.再通过卷积计算层的卷积核按照卷积原理进行卷积处理后,得到单通道矩阵数据
(即实现a+b处理,相当于两个矩阵数据块进行矩阵相加),再经过bias=-1偏置处理操作(矩阵数据中的数据分别加-1),得到矩阵数据(即实现a+b-1处理)。
124.其中,利用卷积核进行卷积处理可以采用相关的卷积函数算法实现,本技术不加以限定。
125.2)在激活函数层利用relu激活函数对卷积处理得到的数据进行处理,得到输出的矩阵数据块。
126.例如,将经过卷积处理得到的数据利用relu激活函数进行处理,得到矩阵数据块(即实现relu(a+b-1)处理)。
127.其中,relu函数一般定义为:
128.relu(x)=max(0,x)
129.relu函数是线性修正函数,它的作用是如果计算出的值小于0,就让它等于0,否则保持原来的值不变。
130.可以看出,该矩阵数据块可以表征上述输入的两个矩阵数据块a与b进行逻辑与运算后的结果。
131.需要说明的是,步骤1)的处理过程可以理解为卷积计算层对两个矩阵数据块的处理操作,步骤2)的处理过程可以理解为激活函数层对卷积计算层输出数据的处理操作,从而得到了“与”运算结果的矩阵数据块。
132.(2)逻辑或运算
133.在第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,再在第二卷积计算层进行第二卷积处理输出单通道卷积数据,得到或运算单元的运算数据;其中,在第一卷积计算层将至少两通道预处理数据进行相加再逐位取相反数,输出单通道卷积数据;在第二卷积计算层将数据逐位取相反数,输出单通道卷积数据。
134.其中,以两通道输入为例但不局限于此,两通道输入的串行数据流分别转换为两通道矩阵数据块,矩阵数据块为3
×
3矩阵形式,两个矩阵数据块可以分别用a与b表示。
135.也就是说,对于“或”运算单元,数据经预处理操作后,分别经第一卷积计算层、激活函数计算层、第二卷积计算层处理,再经后处理操作,可得“或”运算单元输出结果。“或”运算单元的第一卷积计算层的卷积核尺寸为3x3,对于第一卷积计算层而言是两通道输入和单通道输出。“或”运算单元的第二卷积计算层的卷积核尺寸3x3,对于第二卷积计算层而言是单通道输入和单通道输出。其中,第一卷积计算层的卷积运算等价于两通道数据相加再逐位取相反数,第二卷积计算层的卷积相当于数据块逐位取相反数。卷积核参数如图6中
所示。
136.在本实施例中,逻辑或运算表达式可以为:a∪b=1-relu(1-a-b)。
137.其中,第一卷积计算层的卷积核为3
×
3(即kernel=3x3),是两通道卷积核,步长设置为1(即stride=1),填充为1(即padding=1),偏置值设置为1(即bias=1)。
138.其中,第二卷积计算层的卷积核为3
×
3(即kernel=3x3),是单通道卷积核,步长设置为1(即stride=1),填充为1(即padding=1),偏置值设置为1(即bias=1)。
139.其中,激活函数层中的激活函数可以是relu激活函数。
140.请一并参见图6,在一个实施方式中,第一卷积计算层、激活函数层及第二卷积计算层的处理过程包括:
141.1)在第一卷积计算层将输入的两通道矩阵数据块根据卷积参数进行卷积处理。
142.该卷积处理中,卷积参数包括:padding=1,stride=1,bias=1,
143.对应两通道的卷积核为与
144.输入的两通道矩阵数据块,分别为:
145.矩阵数据块矩阵数据块
146.两通道矩阵数据块a和b在经过padding=1的填充处理后,通过第一卷积计算层的卷积核进行卷积处理,得到单通道矩阵数据(即实现-a-b处理,相当于两个矩阵数据块进行矩阵相加后再逐位取相反数),再经过bias=1偏置处理操作(矩阵数据中的数据分别加1),得到矩阵数据(即实现1-a-b处理)。
147.2)在激活函数层利用relu激活函数对卷积处理得到的数据进行处理,得到激活函数层的输出数据。
148.例如,将经过卷积处理得到的数据利用relu激活函数进行处理,得到激活函数层的输出数据(即实现relu(1-a-b)处理)。
149.3)在第二卷积计算层将激活函数层的输出数据,根据卷积参数进行卷积处理。
150.该卷积处理中,卷积参数包括:padding=1,stride=1,bias=1,
151.对应单通道的卷积核为
152.例如,将激活函数层的输出数据在经过padding=1的填充处理后,通过第二卷积计算层的卷积核进行卷积处理后,得到(相当于逐位取相反数),再经bias=1偏置处理操作后,得到矩阵数据块(即实现1-relu(1-a-b)处理)。
153.可以看出,该矩阵数据块可以表征上述输入的两个矩阵数据块a与b进行逻辑或运算后的结果。
154.需要说明的是,步骤1)的处理过程可以理解为第一卷积计算层对两个矩阵数据块的处理操作,步骤2)的处理过程可以理解为激活函数层对第一卷积计算层输出数据的处理操作,3)的处理过程可以理解为第二卷积计算层对激活函数层输出数据的处理操作,从而得到了“或”运算结果的矩阵数据块。
155.(3)逻辑非运算
156.在第一卷积计算层将单通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到非运算单元的运算数据;其中,在第一卷积计算层将单通道预处理数据逐位取相反数,输出单通道卷积数据。
157.其中,以单通道输入为例但不局限于此,单通道输入的串行数据流转换为单通道矩阵数据块,矩阵数据块为3
×
3矩阵形式,该一个矩阵数据块可以用a表示。
158.也就是说,对于“非”运算单元,数据经预处理操作后,分别经过卷积计算层和激活函数计算层处理,再经后处理操作,可得“非”运算单元的输出结果。“非”运算单元的卷积核尺寸为3x3,对于卷积计算层而言是单通道输入数据单通道输出数据。卷积计算层的卷积运算相当于数据块逐位取相反数。卷积核参数如图7中所示。
159.在本实施例中,逻辑非运算表达式可以为:nota=relu(1-a)。
160.其中,卷积计算层的卷积核为3
×
3(即kernel=3x3),是单通道卷积核,步长设置为1(即stride=1),填充为1(即padding=1),偏置值设置为1(即bias=1)。
161.其中,激活函数层中的预设激活函数可以是relu激活函数。
162.请一并参见图7,在一实施方式中,卷积计算层及激活函数层的处理过程包括:
163.1)、在卷积计算层将输入的单通道矩阵数据块根据卷积参数进行卷积处理。
164.该卷积处理中,卷积参数包括:padding=1,stride=1,bias=1,
165.对应单通道的卷积核为
166.单通道矩阵数据块
167.矩阵数据块a在经过padding=1的填充处理后,通过卷积计算层的卷积核进行卷
积处理,得到单通道矩阵数据(即实现-a处理,相当于逐位取相反数),再经过bias=1偏置处理操作,得到矩阵数据(即实现1-a处理)。
168.2)在激活函数层利用relu激活函数对卷积处理得到的数据进行处理,得到输出的矩阵数据块。
169.例如,将经过卷积处理得到的数据利用relu激活函数进行处理,得到矩阵数据块(即实现relu(1-a)处理)。
170.可以看出,该矩阵数据块可以表征上述输入的矩阵数据块a进行逻辑非运算后的结果。
171.需要说明的是,步骤1)的处理过程可以理解为卷积计算层对一个矩阵数据块的处理操作,步骤2)的处理过程可以理解为激活函数层对卷积计算层输出数据的处理操作,从而得到了“非”运算结果的矩阵数据块。
172.s204、进行后处理,将矩阵数据块格式的运算数据转换为串行数据流并输出。
173.在该步骤中,处理器可以实现对矩阵数据块的形式转换,转换为串行数据流。例如,可以将3
×
3矩阵形式的矩阵数据块,转换为9位字节长度的串行数据流。该操作过程可以称为数据后处理操作,其为数据预处理操作(即将串行数据流转换为矩阵数据块)的逆操作,可以使用“m/s”来表示。例如图5所示:
174.可以转换为001000001。
175.从该示例可以看出,本技术实施例提供的方法,对于不同的逻辑运算需求,例如“与”、“或”、“非”逻辑运算,可以根据不同的逻辑运算规律,结合卷积神经网络的运行原理,以构建不同类型的卷积神经网络来实现对上述“与”、“或”、“非”逻辑运算的处理,从而实现在神经网络芯片上执行逻辑运算处理,可以充分发挥神经网络芯片优异的计算加速功能,使得不再需要使用数字逻辑专用芯片或通用处理器来执行逻辑运算,从而能够充分利用神经网络芯片的的硬件计算资源,可以同时执行神经网络推理任务和逻辑门运算任务,实现利用神经网络芯片来处理复杂的逻辑运算问题,例如实现hash算法、加密算法等,以满足用户的需求。
176.图3是本技术实施例的基于卷积神经网络的数据处理方法的另一流程示意图。图3中描述了与非运算、异或运算的处理方式。
177.参见图3,该方法包括:
178.s301、接收输入的串行数据流。
179.该步骤可以参见步骤s201中的描述,此处不再赘述。
180.s302、进行预处理,将输入的串行数据流转换为矩阵数据块。
181.该步骤可以参见步骤s202中的描述,此处不再赘述。
182.s303、将进行预处理得到的矩阵数据块,分别根据与非运算需求或异或运算需求,通过不同逻辑运算单元的卷积计算层和激活函数层进行不同处理,得到逻辑运算单元的运算数据。
183.该步骤中,逻辑运算需求可以是“与非”、“异或”逻辑运算需求。
184.以下分别介绍执行逻辑与非运算、逻辑异或运算的处理过程。
185.(4)逻辑与非运算
186.在第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出至少两通道卷积数据后,通过第一激活函数层的激活函数进行处理,在第二卷积计算层将至少两通道卷积数据进行第二卷积处理输出单通道卷积数据,并通过第二激活函数层的激活函数进行处理,得到与非运算单元的运算数据;其中,在第一卷积计算层将至少两通道预处理数据进行相加,输出至少两通道卷积数据;在第二卷积计算层将至少两通道卷积数据逐位取相反数,输出单通道卷积数据。
187.其中,以两通道输入为例但不局限于此,两通道输入的串行数据流分别转换为两通道矩阵数据块,矩阵数据块为3
×
3矩阵形式,两个矩阵数据块可以分别用a与b表示。
188.也就是说,对于“与非”运算单元,数据经预处理操作后,得到两通道数据块。数据块会经过两个卷积计算层处理,其中每个卷积计算层的处理都包括进行卷积计算和进行激活函数计算(relu)。之后,再经后处理操作,就可以得“与非”运算单元的输出结果。“与非”运算单元的第一卷积计算层的卷积核尺寸为3x3,对于第一卷积计算层而言是两通道输入和两通道输出,该本层卷积计算相当于对两串行数据执行“与”操作;第二卷积计算层的卷积核尺寸为3x3,对于第二卷积计算层而言是两通道输入和单通道输出,该本层卷积计算相当于对数据块内数据逐位取相反数。二者也即两个卷积计算层的级联可实现“与非”操作。对卷积计算层输出结果再执行后处理操作,就可得到两串行数据的“与非”计算结果。各卷积计算层参数如图8所示。
189.其中,第一卷积计算层的卷积核为3
×
3(即kernel=3x3),是两通道卷积核,步长设置为1(即stride=1),填充为1(即padding=1),偏置值设置为-1(即bias=-1)。
190.其中,第二卷积计算层的卷积核为3
×
3(即kernel=3x3),是两通道卷积核,步长设置为1(即stride=1),填充为1(即padding=1),偏置值设置为1(即bias=1)。
191.其中,激活函数层中的激活函数可以是relu激活函数。
192.请一并参见图8,在一个实施方式中,第一卷积计算层、第一激活函数层、第二卷积计算层及第一激活函数层的处理过程包括:
193.1)在第一卷积计算层将输入的两通道矩阵数据块根据卷积参数进行第一卷积处理。
194.该卷积处理中,卷积参数包括:padding=1,stride=1,bias=-1,对应两通道的卷积核为与
195.输入的两通道矩阵数据块,分别为:
196.矩阵数据块矩阵数据块
197.该步骤根据卷积参数进行卷积处理的过程可以参见与运算中的处理过程,此处不再赘述。
198.需说明的是,此时第一卷积计算层是输出两通道卷积数据。
199.2)在第一激活函数层利用第一relu激活函数对卷积处理得到的数据进行处理,得到输出的矩阵数据块。
200.在第一激活函数层利用第一relu激活函数对卷积处理得到的两通道卷积数据进行处理,得到输出的矩阵数据块。
201.3)在第二卷积计算层将两通道矩阵数据块根据卷积参数进行第二卷积处理。
202.该卷积处理中,卷积参数包括:padding=1,stride=1,bias=1,
203.对应两通道的卷积核为与
204.该步骤根据卷积参数进行卷积处理的过程可以参见与运算中的处理过程,此处不再赘述。
205.4)在第二激活函数层利用第二relu激活函数对卷积处理得到的数据进行处理,得到输出的矩阵数据块。
206.经过第二激活函数层的处理,最终得到矩阵数据块
207.可以看出,该矩阵数据块可以表征上述输入的两个矩阵数据块a与b进行逻辑与非运算后的结果。
208.(5)逻辑异或运算
209.在第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出双倍通道卷积数据;将双倍通道卷积数据分别执行或运算和与非运算;将分别执行或运算和与非运算的结果执行与运算,得到异或运算单元的运算数据;其中,在第一卷积计算层将至少两通道预处理数据进行第一卷积处理,将至少两通道预处理数据进行复制,并拼接出至少两通道的双倍通道卷积数据。
210.其中,以两通道输入为例但不局限于此,两通道输入的串行数据流分别转换为两通道矩阵数据块,矩阵数据块为3
×
3矩阵形式,两个矩阵数据块可以分别用a与b表示。
211.也就是说,对于“异或”运算单元,数据经预处理操作后得到两通道数据块。数据块会经卷积计算层和激活函数层进行处理。第一卷积计算层卷积核尺寸为3x3,对于第一卷积计算层而言是两通道输入和四通道输出,本次操作相当于将两通道数据块复制一次,再拼接为四通道数据块。第一卷积计算层的卷积参数如图9所示。
212.然后,对四通道数据块分通道执行“或”运算和“与非”运算,再对输出结果执行“与”运算。其中“与”运算、“或”运算、“与非”运算的卷积算子实现可参见详见图5、6、8所示。
运算举例说明但不局限于此,在此基础上可以将数据增加到四个及以上的输入变量,对应的调整输入数据的channle(通道)和卷积核的channle维度,就可以达到多通道数据的逻辑门操作。
229.综上所描述,本技术的神经网络芯片可以使用卷积和relu操作来实现逻辑电路中的“与、或、非、与非、异或”等操作。在本技术方案中,神经网络芯片中的处理器可以使用固定的神经网络结构和固定的卷积核参数来构建逻辑门算子,还可以对网络结构和卷积核参数进行修改,以实现神经网络芯片的更高效的计算效果。
230.与前述应用功能实现方法实施例相对应,本技术还提供了一种基于卷积神经网络的数据处理装置、人工智能芯片、板卡计算设备及相应的实施例。
231.图10是本技术实施例示出的基于卷积神经网络的数据处理装置的结构示意图。该装置可以应用于处理器。
232.参见图10,一种基于卷积神经网络的数据处理装置100,包括:预处理模块1001、运算模块1002、后处理模块1003。
233.预处理模块1001,用于将输入数据通过预处理得到预处理数据。预处理模块1001可以将输入的串行数据流转换通过拼接操作转换为矩阵数据块。其中,串行数据流(serial),是一种由“0”与“1”组成的数据流,例如110010101、101001110等。
234.运算模块1002,用于在卷积神经网络中根据不同逻辑运算需求,将预处理模块1001得到的预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据。运算模块1002可以将进行预处理得到的矩阵数据块,分别根据不同逻辑运算需求,通过不同逻辑运算单元的卷积计算层和激活函数层进行不同处理,得到逻辑运算单元的运算数据。其中,不同的逻辑运算需求可以是“或”、“与”、“非”、“或非”、“与非”、“异或”等逻辑运算需求。
235.后处理模块1003,用于将运算模块1002得到的运算数据经过后处理得到输出数据。后处理模块1003可以将矩阵数据块格式的运算数据转换为串行数据流。
236.从该示例可以看出,本技术提供的装置,应用于处理器,将输入数据通过预处理得到预处理数据后,可以在卷积神经网络中将预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据;再将运算数据经过后处理得到输出数据。这样,可以利用卷积计算层和激活函数层来构建逻辑运算,实现神经网络芯片上也可以直接执行逻辑运算处理,从而提升了神经网络芯片的硬件资源利用率,丰富了神经网络芯片的芯片功能,降低了神经网络芯片的开发成本和使用成本。
237.图11为本技术另一实施例中的基于卷积神经网络的数据处理装置的结构示意图。
238.参见图11,一种基于卷积神经网络的数据处理装置100,包括:预处理模块1001、运算模块1002、后处理模块1003。其中,运算模块1002包括:与运算单元1005、或运算单元1006、非运算单元1007、与非运算单元1008、异或运算单元1009。
239.预处理模块1001、运算模块1002、后处理模块1003的功能可以参见图10中的描述,此处不再赘述。
240.与运算单元1005,用于在第一卷积计算层将至少两通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到与运算单元的运算数据;其中,在第一卷积计算层将至少两通道预处理数据进行相加,输出单通道卷积数据。
241.或运算单元1006,用于在第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,再在第二卷积计算层进行第二卷积处理输出单通道卷积数据,得到或运算单元的运算数据;其中,在第一卷积计算层将至少两通道预处理数据进行相加再逐位取相反数,输出单通道卷积数据;在第二卷积计算层将数据逐位取相反数,输出单通道卷积数据。
242.非运算单元1007,用于在第一卷积计算层将单通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到非运算单元的运算数据;其中,在第一卷积计算层将单通道预处理数据逐位取相反数,输出单通道卷积数据。
243.与非运算单元1008,用于在第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出至少两通道卷积数据后,通过第一激活函数层的激活函数进行处理,在第二卷积计算层将至少两通道卷积数据进行第二卷积处理输出单通道卷积数据,并通过第二激活函数层的激活函数进行处理,得到与非运算单元的运算数据;其中,在第一卷积计算层将至少两通道预处理数据进行相加,输出至少两通道卷积数据;在第二卷积计算层将至少两通道卷积数据逐位取相反数,输出单通道卷积数据。
244.异或运算单元1009,用于在第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出双倍通道卷积数据;将双倍通道卷积数据分别通过或运算单元执行或运算和通过与非运算单元执行与非运算;将分别执行或运算和与非运算的结果通过与运算单元执行与运算,得到异或运算单元的运算数据;其中,在第一卷积计算层将至少两通道预处理数据进行第一卷积处理,将至少两通道预处理数据进行复制,并拼接出至少两通道的双倍通道卷积数据。
245.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
246.应该理解,上述的装置实施例仅是示意性的,本技术的装置还可通过其它的方式实现。例如,上述实施例中单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
247.另外,若无特别说明,在本技术各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
248.集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,处理器可以是任何适当的硬件处理器,比如cpu(central processing unit,中央处理单元)、gpu(graphics processing unit,图形处理器)、fpga(field-programmable gate array,现场可编程门阵列)、dsp(digital signal processor,数字信号处理器)和asic(application specific integrated circuit,专用集成电路)等等。若无特别说明,存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器rram(resistive random access memory)、动态随机存取存储器dram(dynamic random access memory)、静态随机存取存储器sram(static random-access memory)、增强动态随机存取存储器edram
(enhanced dynamic random access memory)、高带宽内存hbm(high-bandwidth memory)、混合存储立方hmc(hybrid memory cube)等等。
249.集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本技术的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
250.图12是本技术实施例示出的人工智能芯片的结构框图。
251.参见图12,本技术还提供了一种人工智能芯片120,其包括了上述基于卷积神经网络的数据处理装置100。基于卷积神经网络的数据处理装置100的结构可以参见图10和图11中的描述。人工智能芯片120例如可以是神经网络芯片或其他芯片,神经网络芯片例如可以是卷积神经网络推理芯片、asic芯片等。
252.本技术还提供了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,人工智能芯片与存储器件、控制器件以及接口装置分别连接;存储器件,用于存储数据;接口装置,用于实现人工智能芯片与外部设备之间的数据传输;控制器件,用于对人工智能芯片的状态进行监控。
253.图13是本技术实施例示出的板卡的结构框图,参阅图13,上述板卡除了包括上述人工智能芯片1389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件1390、接口装置1391和控制器件1392;
254.存储器件1390与人工智能芯片1389通过总线连接,用于存储数据。存储器件1390可以包括多组存储单元1393。每一组存储单元1393与人工智能芯片1389通过总线连接。可以理解,每一组存储单元1393可以是ddr sdram(double data rate sdram,双倍速率同步动态随机存储器)。
255.ddr不需要提高时钟频率就能加倍提高sdram的速度。ddr允许在时钟脉冲的上升沿和下降沿读出数据。ddr的速度是标准sdram的两倍。在一个实施例中,存储装置可以包括4组存储单元1393。每一组存储单元1393可以包括多个ddr4颗粒(芯片)。在一个实施例中,人工智能芯片1389内部可以包括4个72位ddr4控制器,上述72位ddr4控制器中64bit用于传输数据,8bit用于ecc校验。可以理解,当每一组存储单元1393中采用ddr4-3200颗粒时,数据传输的理论带宽可达到25600mb/s。
256.在一个实施例中,每一组存储单元1393包括多个并联设置的双倍速率同步动态随机存储器。ddr在一个时钟周期内可以传输两次数据。在芯片中设置控制ddr的控制器,用于对每个存储单元1393的数据传输与数据存储的控制。
257.接口装置1391与人工智能芯片1389电连接。接口装置1391用于实现人工智能芯片1389与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,接口装置1391可以为标准pcie接口。比如,待处理的数据由服务器通过标准pcie接口传递至芯片,实现数据转移。优选的,当采用pcie 3.0x 16接口传输时,理论带宽可达到16000mb/s。在另一个实施例中,接口装置1391还可以是其他的接口,本技术并不限制上述其他的接口的具体
表现形式,接口单元能够实现转接功能即可。另外,人工智能芯片1389的计算结果仍由接口装置传送回外部设备(例如服务器)。
258.控制器件1392与人工智能芯片1389电连接。控制器件1392用于对人工智能芯片1389的状态进行监控。具体的,人工智能芯片1389与控制器件1392可以通过spi接口电连接。控制器件1392可以包括单片机(micro controller unit,mcu)。人工智能芯片1389可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,人工智能芯片1389可以处于多负载和轻负载等不同的工作状态。通过控制器件1392可以实现对人工智能芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
259.在一种可能的实现方式中,本技术还提供一种计算设备,其包括了上述人工智能芯片。该计算设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。交通工具包括飞机、轮船和/或车辆;家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;医疗设备包括核磁共振仪、b超仪和/或心电图仪。
260.图14是本技术实施例示出的计算设备的结构示意图。
261.参见图14,计算设备1200包括存储器1210和处理器1220。
262.处理器1220可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
263.存储器1210可以包括各种类型的存储单元,例如系统内存、只读存储器(rom)和永久存储装置。其中,rom可以存储处理器1220或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1210可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(例如dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1210可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、min sd卡、micro-sd卡等)、磁性软盘等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
264.存储器1210上存储有可执行代码,当可执行代码被处理器1220处理时,可以使处理器1220执行上文述及的方法中的部分或全部。
265.此外,根据本技术的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本技术的上述方法中部分或全部步骤的计算机
程序代码指令。
266.或者,本技术还可以实施为一种计算机可读存储介质(或非暂时性机器可读存储介质或机器可读存储介质),其上存储有可执行代码(或计算机程序或计算机指令代码),当可执行代码(或计算机程序或计算机指令代码)被电子设备(或服务器等)的处理器执行时,使处理器执行根据本技术的上述方法的各个步骤的部分或全部。
267.以上已经描述了本技术的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。

技术特征:
1.一种基于卷积神经网络的数据处理方法,其特征在于,应用于处理器,所述方法包括:将输入数据通过预处理得到预处理数据;在卷积神经网络中根据不同逻辑运算需求,将所述预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据;将所述运算数据经过后处理得到输出数据。2.根据权利要求1所述的方法,其特征在于:所述将输入数据通过预处理得到预处理数据,包括:将输入的串行数据流转换通过拼接操作转换为矩阵数据块;所述将所述运算数据经过后处理得到输出数据,包括:将矩阵数据块格式的运算数据转换为串行数据流。3.根据权利要求1所述的方法,其特征在于,所述将所述预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据,包括:在与运算单元的第一卷积计算层将至少两通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到与运算单元的运算数据;或,在或运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,再在第二卷积计算层进行第二卷积处理输出单通道卷积数据,得到或运算单元的运算数据;或,在非运算单元的第一卷积计算层将单通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到非运算单元的运算数据;或,在与非运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出至少两通道卷积数据后,通过第一激活函数层的激活函数进行处理,在第二卷积计算层将至少两通道卷积数据进行第二卷积处理输出单通道卷积数据,并通过第二激活函数层的激活函数进行处理,得到与非运算单元的运算数据。4.根据权利要求3所述的方法,其特征在于:所述在与运算单元的第一卷积计算层将至少两通道预处理数据进行卷积处理输出单通道卷积数据,包括:在与运算单元的第一卷积计算层将至少两通道预处理数据进行相加,输出单通道卷积数据;或,所述在或运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出单通道卷积数据,包括:在或运算单元的第一卷积计算层将至少两通道预处理数据进行相加再逐位取相反数,输出单通道卷积数据;所述在第二卷积计算层进行第二卷积处理输出单通道卷积数据,包括:在第二卷积计算层将数据逐位取相反数,输出单通道卷积数据;或,所述在非运算单元的第一卷积计算层将单通道预处理数据进行卷积处理输出单通道卷积数据,包括:在第一卷积计算层将单通道预处理数据逐位取相反数,输出单通道卷积数据;或,所述在与非运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出至少两通道卷积数据,包括:在第一卷积计算层将至少两通道预处理数据进行相加,输出至少两通道卷积数据;所述在第二卷积计算层将至少两通道卷积数据进行第二卷积处理
输出单通道卷积数据,包括:在第二卷积计算层将至少两通道卷积数据逐位取相反数,输出单通道卷积数据。5.根据权利要求3所述的方法,其特征在于,所述将所述预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据,包括:在异或运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出双倍通道卷积数据;将所述双倍通道卷积数据分别执行或运算和与非运算;将分别执行或运算和与非运算的结果执行与运算,得到异或运算单元的运算数据。6.根据权利要求5所述的方法,其特征在于,所述在异或运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出双倍通道卷积数据,包括:在异或运算单元的第一卷积计算层将至少两通道预处理数据进行第一卷积处理,将至少两通道预处理数据进行复制,并拼接出所述至少两通道的双倍通道卷积数据。7.一种基于卷积神经网络的数据处理装置,其特征在于,应用于处理器,所述装置包括:预处理模块,用于将输入数据通过预处理得到预处理数据;运算模块,用于在卷积神经网络中根据不同逻辑运算需求,将所述预处理模块得到的预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据;后处理模块,用于将所述运算模块得到的运算数据经过后处理得到输出数据。8.根据权利要求7所述的装置,其特征在于,所述运算模块包括:与运算单元,用于在第一卷积计算层将至少两通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到与运算单元的运算数据;或,或运算单元,用于在第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,再在第二卷积计算层进行第二卷积处理输出单通道卷积数据,得到或运算单元的运算数据;或,非运算单元,用于在第一卷积计算层将单通道预处理数据进行卷积处理输出单通道卷积数据后,通过激活函数层的激活函数进行处理,得到非运算单元的运算数据;或,与非运算单元,用于在第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出至少两通道卷积数据后,通过第一激活函数层的激活函数进行处理,在第二卷积计算层将至少两通道卷积数据进行第二卷积处理输出单通道卷积数据,并通过第二激活函数层的激活函数进行处理,得到与非运算单元的运算数据。9.根据权利要求8所述的装置,其特征在于,所述运算模块还包括:异或运算单元,用于在第一卷积计算层将至少两通道预处理数据进行第一卷积处理输出双倍通道卷积数据;将所述双倍通道卷积数据分别通过所述或运算单元执行或运算和通过所述与非运算单元执行与非运算;将分别执行或运算和与非运算的结果通过所述与运算单元执行与运算,得到异或运算单元的运算数据。10.一种人工智能芯片,其特征在于,包括权利要求7至9任一项所述的基于卷积神经网络的数据处理装置。11.一种计算设备,其特征在于,包括:
处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-6中任一项所述的方法。12.一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器执行如权利要求1-6中任一项所述的方法。

技术总结
本申请涉及一种基于卷积神经网络的数据处理方法、装置及设备。该方法应用于处理器,包括:将输入数据通过预处理得到预处理数据;在卷积神经网络中根据不同逻辑运算需求,将所述预处理数据通过不同逻辑运算单元的卷积计算层和激活函数层进行处理,得到逻辑运算单元的运算数据;将所述运算数据经过后处理得到输出数据。本申请提供的方案,能够实现在神经网络芯片上执行逻辑运算处理,可以提升神经网络芯片的硬件资源利用率和丰富神经网络芯片的芯片功能,降低神经网络芯片的开发成本和使用成本。本。本。


技术研发人员:胡宇 李天元 刘嘉超 刘兰个川
受保护的技术使用者:广州小鹏自动驾驶科技有限公司
技术研发日:2021.12.07
技术公布日:2022/3/8

最新回复(0)