加填充方法、装置、系统与计算机可读存储介质与流程

文档序号:29626793发布日期:2022-04-13 14:40阅读:76来源:国知局
加填充方法、装置、系统与计算机可读存储介质与流程

1.本发明涉及神经网络技术领域,尤其涉及加填充方法、装置、系统与计算机可读存储介质。


背景技术:

2.加填充(padding)操作是神经网络算法中一种常见的操作,通常用来对输入的待处理数据进行预处理,使用特定的常数在输入的待处理数据的四周进行填充,从而使输入的待处理数据经过后续的算法操作后能得到预设的形状。传统的方式采用软件来进行填充操作,即使用处理器根据预设加填充模式执行对应的加填充的程序,在外部存储器中读取填充数据来完成加填充操作,这严重降低了ai芯片的运行性能,降低了神经网络算法的计算效率。
3.因此,如何提高加填充操作的效率以提高ai芯片的性能,进而提高神经网络算法的计算效率,是急需解决的问题。


技术实现要素:

4.本发明的主要目的在于提出一种加填充方法、装置、系统与计算机可读存储介质,旨在解决如何提高加填充操作的效率以提高ai芯片的性能,进而提高神经网络算法的计算效率的问题。
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.将经过所述修正模块修正后的地址输入存储模块,获取神经网络算法计算窗口中包含的数据,并输出给ai芯片的计算模块,完成神经网络算法的计算过程,以得到目标计算结果。
43.此外,为实现上述目的,本发明还提供一种ai芯片加填充系统,所述加填充系统包括:存储器、处理器、ai芯片及存储在所述存储器上并可在处理器上运行以驱动所述ai芯片上运行的加填充驱动程序,所述加填充驱动程序驱动所述ai芯片执行时实现如上所述的加填充方法的步骤。
44.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有加填充驱动程序,所述加填充驱动程序驱动ai 芯片执行时实现如上所述的加填充方法的步骤。
45.本发明提出的加填充方法,在检测到计算命令时,获取计算窗口包含的第一坐标集合和原始图片对应的存储地址集合,并根据第一坐标集合和存储地址集合,确定计算窗口是否包含填充数据位置;若计算窗口包含填充数据位置,则根据预设加填充模式,对填充数据位置进行加填充操作;本发明根据坐标集合和存储地址集合,确定计算窗口是否包含填充数据位置,若计算窗口包含填充数据位置,则根据预设加填充模式,对填充数据位置进行加填充操作,提高加填充操作的效率以提高ai芯片的性能,进而提高神经网络算法的计算效率。
附图说明
46.图1是本发明实施例方案涉及的硬件运行环境的系统结构示意图;
47.图2为本发明加填充方法第一实施例的流程示意图;
48.图3为本发明虚拟目标图片示意图;
49.图4为本发明ai芯片与加填充模块和计算模块的结构关系示意图。
50.本发明目的的实现、功能特点及优点将集合实施例,参照附图做进一步说明。
具体实施方式
51.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
52.如图1所示,图1是本发明实施例方案涉及的硬件运行环境的系统结构示意图。
53.本发明实施例系统可以是pc机或服务器系统。
54.如图1所示,该系统可以包括:ai芯片1001,网络接口1004,用户接口1003,存储器1005,处理器1006,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi 接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器 (non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述ai芯片1001和前述处理器1006的存储装置。
55.本领域技术人员可以理解,图1中示出的系统结构并不构成对系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
56.如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及加填充驱动程序。
57.其中,操作系统是管理和控制处理器设备和ai芯片设备与软件资源的程序,支持网络通信模块、用户接口模块、加填充驱动程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。
58.在图1所示的加填充设备系统中,所述ai芯片1001的加填充设备通过处理器1006调用存储器1005中存储的加填充驱动程序进行驱动,并执行下述加填充方法各个实施例中的操作。
59.基于上述硬件结构,提出本发明加填充方法实施例。
60.参照图2,图2为本发明加填充方法第一实施例的流程示意图,所述方法包括:
61.步骤s10,在检测到计算命令时,获取计算窗口包含的第一坐标集合和原始图片对应的存储地址集合,并根据所述第一坐标集合和所述存储地址集合,确定所述计算窗口是否包含填充数据位置;
62.步骤s20,若所述计算窗口包含填充数据位置,则根据预设加填充模式,对所述填充数据位置进行加填充操作。
63.本实施例加填充方法运用于图像处理系统的加填充设备中,加填充设备可以是ai芯片终端或者pc设备,为描述方便,以ai芯片加填充设备为例进行描述,该ai芯片加填充设备包括但不限于ai芯片、行列地址生成器 (row/column address generator)、对比单元(width/height border detector)、地址修正单元(row/column address fix)、地址转换单元(address transform)和选择输出单元(mux)。ai芯片加填充设备中的ai芯片在检测到计算命令时,获取计算窗口包含的第一坐标集合和原始图片对应的存储地址集合,并确定存储地址集合对应的第二坐标集合中原始图片的边界坐标集合,并通过对比单元基于第一坐标集合和边界坐标集合进行边界检测;若第一坐标集合中存在位于边界坐标集合之外的第一坐标,则确定计算窗口中包含填充数据位置。ai芯片加填充设备中的加填充装置若确定计算窗口包含填充数据位置,则获取并识别预设加填充模式;若预设加填充模式为第一加填充模式,则通过地址修正单元和地址转换单元对填充数据位置第一坐标对应的第一存
储地址进行修正,并根据修正后的第一存储地址从存储器中读取对应的第二数据,通过选择输出单元将第二数据作为填充数据加填充到所述填充数据位置;若预设加填充模式为第二加填充模式,则读取对应的第一数据,并通过选择输出单元将第一数据加填充到填充数据位置。可以理解的是,如图4所示,ai芯片加填充设备中包括但不限于加填充装置中的加填充模块和计算模块。
64.需要说明的是,计算窗口可为卷积操作对应的计算窗口,也可为池化操作对应的计算窗口,具体是什么操作可根据实际情况确定;预设加填充模式包括第一加填充模式和第二加填充模式,是提前设定实现在ai芯片加填充设备中的,ai芯片加填充设备可根据具体的神经网络算法确定对应的预设加填充模式,其中第一加填充模式包括:复制加填充模式(replication)、反射加填充模式(reflection和reflection101)和外包装加填充模式(wrap),第二加填充模式为常数加填充模式(constant);ai芯片加填充设备会根据原始图片生成虚拟目标图片,对于常数加填充模式,ai芯片加填充设备根据具体的神经网络算法中规定的需要加填充的常数,确定原始图片中的加填充位置,并在虚拟目标图片中的加填充数据位置加填充对应的常数,进而得到对应的目标图片;对于其他加填充模式,ai芯片加填充设备根据具体的神经网络算法中规定的加填充规则,确定原始图片中的加填充位置,并在虚拟目标图片中的加填充位置加填充对应的数据,进而得到对应的目标图片,目标图片为原始图片经过加填充后的图片。
65.本实施例的加填充方法,在检测到计算命令时,获取计算窗口包含的第一坐标集合和原始图片对应的存储地址集合,并根据第一坐标集合和存储地址集合,确定计算窗口是否包含填充数据位置;若计算窗口包含填充数据位置,则根据预设加填充模式,对填充数据位置进行加填充操作;本发明根据坐标集合和存储地址集合,确定计算窗口是否包含填充数据位置,若计算窗口包含填充数据位置,则根据预设加填充模式,对填充数据位置进行加填充操作,提高加填充操作的效率以提高ai芯片的性能,进而提高神经网络算法的计算效率。
66.以下将对各个步骤进行详细说明:
67.步骤s10,在检测到计算命令时,获取计算窗口包含的第一坐标集合和原始图片对应的存储地址集合,并根据所述第一坐标集合和所述存储地址集合,确定所述计算窗口是否包含填充数据位置;
68.在本实施例中,ai芯片加填充设备在检测到计算命令时,根据原始图片和具体的神经网络算法,在原始图片的外围生成加填充位置,得到虚拟目标图片,该虚拟目标图片的加填充位置中不存在数据;加填充系统的ai芯片通过控制计算窗口对虚拟目标图片进行框选,获取被计算窗口框选部分包含的第一坐标集合和获取原始图片中每个数据位置对应在存储器中的存储地址集合,并根据第一坐标集合和存储地址集合,确定计算窗口是否包含填充数据位置;如:参考图3,图3为虚拟目标图片示意图,虚拟目标图片外围一圈“p”所在的位置即为加填充位置,“p”代表虚拟目标图片的加填充数据位置上需要加填充的数据,对于常数加填充模式,虚拟目标图片中的加填充数据位置需要填充对应的常数,即“p”可能等于“0”、“1”等,对于其他加填充模式,需要通过后续步骤确认加填充数据位置需要加填充的数据,ai芯片的加填充装置通过控制高度和宽度都为3的计算窗口在目标图片上方移动,当计算窗口移动到如图3所示的目标图片的左上角时,即位于图3所示的黑色框位置时,获取被
计算窗口框选部分包含每个数据位置对应的第一坐标,得到第一坐标集合,获取原始图片中每个数据位置对应在存储器中的存储地址集合,根据第一坐标集合和存储地址集合,确定计算窗口包含填充数据位置,当计算窗口移动到目标图片的其他位置时,同样通过上述方法确定计算窗口是否包含填充数据位置,在此便不一一赘述。
69.具体的,在步骤s10之前包括:
70.步骤a,获取原始图片,根据所述原始图片的行数和列数,生成所述原始图片中有效数据位置对应的第二坐标集合,以得到所述原始图片对应的存储地址集合,并根据所述存储地址集合将所述原始图片中的有效数据储存到存储器中。
71.在该步骤中,ai芯片获取原始图片,根据原始图片的行数和列数,生成原始图片中每个有效数据位置的坐标,以得到原始图片对应的存储地址集合,并根据存储地址集合将原始图片中包含的有效数据储存到存储器中;如:参考图3,图3中数字部分为原始图片,“p”部分代表加填充位置,原始图片的行数和列数都为8,加填充设备以原始图片的左上角作为原点,以列数作为横坐标,以行数作为纵坐标,进而确定原始图片中每个数据位置的坐标,如第一行第一列坐标为(1,1),第二行第四列坐标为(4,2),根据每个数据位置的坐标,生成每个数据位置对应的存储地址,如第一行第一列坐标为(1,1),对应的存储地址为1a+1,第二行第四列坐标为(4,2),对应的存储地址为2a+4,进而得到原始图片对应的存储地址集合,并根据存储地址集合将原始图片中包含的数据储存到存储器中,其中,加填充设备仅仅将原始图片中的有效数据储存在存储器中,不仅有利于节约存储器的存储空间,还有利于提高加填充设备的ai芯片的性能。
72.具体地,根据所述第一坐标集合和所述存储地址集合,确定所述计算窗口是否包含填充数据位置的步骤包括:
73.步骤c,确定所述存储地址集合对应的第二坐标集合中所述原始图片的边界坐标集合,并基于所述第一坐标集合和所述边界坐标集合进行边界检测;
74.在该步骤中,加填充设备在得到虚拟目标图片中被计算窗口框选的数据位置对应的第一坐标集合后,确定存储地址集合对应的第二坐标集合中属于原始图片的边界坐标集合,并基于第一坐标集合和边界坐标集合进行边界检测;如:加填充设备首先通过行列地址生成器分别生成虚拟目标图片中的行地址和列地址,进而生成虚拟目标图片中每个位置对应的第一坐标,并根据原始图片的存储地址集合对应的第二坐标集合确定所述原始图片的边界坐标集合,将第一坐标集合和边界坐标集合进行对比,以进行边界检测,以确定第一坐标集合中是否存在位于原始图片的边界之外的第一坐标。
75.步骤d,若所述第一坐标集合中存在位于所述边界坐标集合之外的第一坐标,则确定所述计算窗口中包含填充数据位置。
76.在该步骤中,加填充设备将第一坐标集合和边界坐标集合进行对比,进行边界检测后,若得到检测结果为第一坐标集合中存在位于边界坐标集合之外的第一坐标,则确定计算窗口中包含填充数据位置。如:计算窗口位于如图3所示的虚拟目标图片的左上角,即黑色框的位置时,此时计算窗口框选的第一坐标集合包括:(1,1)、(2,1)、(3,1)、(1,2)、(2,2)、(3,2)、 (1,3)、(2,3)和(3,3),加填充设备将第一坐标集合中的(1,1)、(2,1)、 (3,1)、(1,2)、(2,2)、(3,2)、(1,3)、(2,3)和(3,3)分别与原始图片对应的边界坐标集合进行对比,得到对比结果:(1,1)、(2,1)、(3,1)、 (1,2)和(1,3)属于位于边界坐标集合之外的第一坐
标,即虚拟目标图片中的填充数据位置对应的坐标;(2,2)、(3,2)、(2,3)和(3,3)属于原始图片中有效数据位置对应的坐标;(2,2)、(3,2)和(2,3)属于原始图片的边界坐标;加填充设备确定计算窗口中包含填充数据位置,并且确定每个填充数据位置对应的坐标。需要说明的是,当计算窗口位于目标图片的其他位置时,确定计算窗口中是否包含填充数据位置的步骤遇上述步骤类似,在此便不一一赘述。
77.步骤s20,若所述计算窗口包含填充数据位置,则根据预设加填充模式,对所述填充数据位置进行加填充操作。
78.在本实施例中,加填充设备若确定计算窗口包含填充数据位置,则根据具体的神经网络算法确定预设加填充模式;若预设加填充模式为第一加填充模式,即复制加填充模式(replication)、反射加填充模式(reflection和 reflection101)或外包装加填充模式(wrap)时,则根据第一加填充模式确定加填充规则,并根据加填充规则,对填充数据位置进行加填充操作;若预设加填充模式为第二加填充模式,即常数加填充模式(constant)时,则读取对应的第一数据,并将第一数据加填充到所述填充数据位置。需要说明的是,加填充规则是根据具体的预设加填充模式确定的,不同的预设加填充模式对应不同的加填充规则。
79.进一步地,加填充设备若确定计算窗口不包含填充数据位置,即计算窗口只包含原始图片中的有效数据位置,此时加填充设备则直接根据有效数据在存储器中对应的存储地址,在存储器中读取对应的有效数据,并根据有效数据进行对应的计算。
80.具体地,步骤s20包括:
81.步骤e,若所述计算窗口包含填充数据位置,则获取并识别预设加填充模式;
82.在该步骤中,加填充设备若确定计算窗口中包含填充数据,则获取并识别预设加填充模式是第一加填充模式还是第二加填充模式。
83.步骤f,若所述预设加填充模式为第一加填充模式,则根据所述第一加填充模式确定加填充规则,并根据所述加填充规则,对所述填充数据位置进行加填充操作;
84.在该步骤中,加填充设备若确定预设加填充模式为第一加填充模式,即复制加填充模式(replication)、反射加填充模式(reflection和reflection101) 或外包装加填充模式(wrap)时,根据对应的加填充模式确定对应的加填充规则,并根据加填充规则对计算窗口中的填充数据位置进行加填充操作。
85.具体地,步骤f包括:
86.步骤f1,若所述预设加填充模式为第一加填充模式,则对所述填充数据位置的第一坐标对应的第一存储地址进行修正,并根据修正后的第一存储地址读取对应的第二数据;
87.在该步骤中,加填充设备若确定预设加填充模式为第一加填充模式,则根据对应的加填充模式确定对应的加填充规则,并根据加填充规则,对计算窗口中的填充数据位置的第一坐标对应的第一存储地址进行修正,并根据修正后的第一存储地址从存储器中读取对应的第二数据,需要说明的是,第二数据即需要填充到填充数据位置对应的数据。
88.进一步地,对所述填充数据位置对应的存储地址进行修正的步骤包括:
89.根据所述第一加填充模式和所述原始图片对应的存储地址集合,确定所述填充数据位置待填充的数据对应的第二存储地址,并将所述填充数据位置的第一坐标对应的第一存储地址修正为所述第二存储地址。
90.在该步骤中,加填充设备根据第一加填充模式和原始图片对应的存储地址集合,确定填充数据位置待填充的数据对应的第二存储地址,并将填充数据位置的第一坐标对应的第一存储地址修正为第二存储地址;如:当第一加填充模式为复制加填充模式(replication)时,根据复制加填充模式(replication) 对应的加填充规则,需要将原始图片的边界数值进行复制,并加填充到对应的填充数据位置,假设计算窗口位于如图3所示的目标图片的左上角,即黑色框的位置时,坐标为(1,1)对应的填充数据位置需要复制加填充坐标为(2,2) 的有效数据0,坐标为(2,1)对应的填充数据位置需要复制加填充坐标为(2,2) 的有效数据0,坐标为(3,1)对应的填充数据位置需要复制加填充坐标为(3,2) 的有效数据1,坐标为(1,2)对应的填充数据位置需要复制加填充坐标为(2,2) 的有效数据0,坐标为(1,3)对应的填充数据位置需要复制加填充坐标为(2,3) 的有效充数据8,加填充设备确定原始图片中的有效数据0、1、8对应的第二存储地址为2a+2、2a+3和3a+2,并通过地址修正单元和地址转换单元将坐标为(1,1)、(2,1)和(1,2)对应的填充数据位置对应的第一存储地址1a+1、 1a+2和2a+1都修正为有效数据0对应的第二存储地址2a+2,将坐标为(3,1) 对应的填充数据位置对应的第一存储地址1a+3修正为有效数据1对应的第二存储地址2a+3,将坐标为(1,3)对应的填充数据位置对应的第一存储地址3a+1 修正为有效数据8对应的第二存储地址3a+2。需要说明的是,当第一加填充模式为反射加填充模式(reflection和reflection101)或外包装加填充模式 (wrap)时,对应地根据不同的加填充模式,确定填充数据位置需要填充的数据具体是原始图片中哪个非填充数据,并对填充数据位置修正,不同的加填充模式仅仅是填充数据位置需要填充的数据不同,其他步骤与上述基本相同,在此不一一赘述。
91.步骤f2,将所述第二数据作为填充数据加填充到所述填充数据位置。
92.在该步骤中,加填充设备在根据修正后的存储地址读取对应的第二数据后,将第二数据作为填充数据加填充到计算窗口的填充数据位置,如:当第一加填充模式为复制加填充模式(replication),计算窗口位于如图3所示的目标图片的左上角,即黑色框的位置时,加填充设备将坐标为(1,1)、(2,1) 和(1,2)对应的填充数据位置对应的第一存储地址修正为2a+2,将坐标为(3,1) 对应的填充数据位置对应第一的存储地址修正为2a+3,将坐标为(1,3)对应的填充数据位置对应的第一存储地址修正为3a+2后,再根据修正后的第一存储地址2a+2,获取对应的第二数据0,将第二数据0加填充到对坐标为(1,1)、 (2,1)和(1,2)对应的填充数据位置上,根据修正后的存储地址2a+3,获取对应的第二数据1,将第二数据1加填充到对坐标为(3,1)对应的填充数据位置上,根据修正后的存储地址3a+2,获取对应的第二数据8,将第二数据8 加填充到对坐标为(1,3)对应的填充数据位置上。需要说明的是,当第一加填充模式为反射加填充模式(reflection和reflection101)或外包装加填充模式 (wrap)时,其将第二数据作为填充数据加填充到填充数据位置的步骤与上述基本相同,在此不一一赘述。
93.步骤g,若所述预设加填充模式为第二加填充模式,则根据所述填充数据位置对应的存储地址,读取对应的第一数据,并将所述第一数据加填充到所述填充数据位置。
94.在该步骤中,加填充设备若确定预设加填充模式为第二加填充模式,即常数加填充模式(constant)时,由于在常数加填充模式(constant)下,虚拟目标图片中的填充数据位置需要填充对应的常数数据,加填充设备根据具体的神经网络算法确定对应的常数数
据,并将常数数据加填充到填充数据位置。
95.本实施例的ai芯片的加填充设备在检测到计算命令时,获取计算窗口包含的第一坐标集合和原始图片对应的存储地址集合,并确定存储地址集合对应的第二坐标集合中原始图片的边界坐标集合,并通过对比单元基于第一坐标集合和边界坐标集合进行边界检测;若第一坐标集合中存在位于边界坐标集合之外的第一坐标,则确定计算窗口中包含填充数据位置。ai芯片的加填充设备若确定计算窗口包含填充数据位置,则获取并识别预设加填充模式;若预设加填充模式为第一加填充模式,则通过地址修正单元和地址转换单元对填充数据位置第一坐标对应的第一存储地址进行修正,并根据修正后的第一存储地址从存储器中读取对应的第二数据,通过选择输出单元将第二数据作为填充数据加填充到所述填充数据位置;若预设加填充模式为第二加填充模式,则读取对应的第一数据,并通过选择输出单元将第一数据加填充到填充数据位置,提高了加填充操作的效率以提高ai芯片的性能,进而提高神经网络算法的计算效率。
96.进一步地,基于本发明加填充方法第一实施例,提出本发明加填充方法第二实施例。
97.加填充方法的第二实施例与加填充方法的第一实施例的区别在于,步骤 s20之后还包括:
98.步骤h,将经过所述加填充操作的计算窗口中包含的数据集合输入计算模块中,以得到目标计算结果,并执行步骤:获取计算窗口包含的第一坐标集合和原始图片对应的存储地址集合,并根据所述第一坐标集合和所述存储地址集合,确定所述计算窗口是否包含填充数据位置。
99.在本实施例中,加填充设备将经过加填充操作的计算窗口中包含的填充数据和/或非填充数据输入计算模块中,通过计算模块计算出目标计算结果,控制计算窗口从如图3所示的黑色框的位置开始,再控制计算窗口向虚拟目标图片的行方向即宽度方向进行移动,每移动一次执行一次获取计算窗口包含的坐标集合,并根据所述坐标集合和存储地址集合,确定所述计算窗口是否包含填充数据位置以及后续步骤,当计算窗口移动到目标图片的最右边,即计算窗口中包含:第一行“p、p、p”,第二行“6、7、p”,第三行“14、15、p”,并执行获取计算窗口包含的第一坐标集合,并根据所述第一坐标集合和和原始图片对应的存储地址集合,并根据第一坐标集合和存储地址集合确定计算窗口是否包含填充数据位置以及后续步骤完成计算后,控制计算窗口返回如图3所示的黑色框的位置,并根据计算窗口对应的列步长,控制计算模块向下移动,使得计算窗口中包含:第一行“p、0、1”,第二行“p、8、 9”,第三行“p、16、17”,以此类推,控制计算窗口进行移动,直到整个虚拟目标图片计算完成后,根据所有的目标计算结果得到目标图片。
100.本实施例的加填充设备将经过加填充操作的计算窗口中包含的数据集合输入计算模块中,以得到目标计算结果,并执行步骤:获取计算窗口包含的第一坐标集合和原始图片对应的存储地址集合,并根据所述第一坐标集合和所述存储地址集合,确定所述计算窗口是否包含填充数据位置;有助于提高加填充操作的效率以提高ai芯片的性能,进而提高神经网络算法的计算效率。
101.本发明还提供一种加填充装置。本发明加填充装置包括:
102.获取模块,用于在检测到计算命令时,获取计算窗口包含的第一坐标集合和原始
图片对应的存储地址集合,并根据所述第一坐标集合和所述存储地址集合,确定所述计算窗口是否包含填充数据位置;
103.填充模块,用于若所述计算窗口包含填充数据位置,则根据预设加填充模式,对所述填充数据位置进行加填充操作。
104.进一步地,所述获取模块还包括存储模块,所述存储模块用于:
105.获取原始图片,根据所述原始图片的行数和列数,生成所述原始图片中有效数据位置对应的第二坐标集合,以得到所述原始图片对应的存储地址集合,并根据所述存储地址集合将所述原始图片中的有效数据储存到存储器中。
106.进一步地,所述获取模块还用于:
107.确定所述存储地址集合对应的第二坐标集合中所述原始图片的边界坐标集合,并基于所述第一坐标集合和所述边界坐标集合进行边界检测;
108.若所述第一坐标集合中存在位于所述边界坐标集合之外的第一坐标,则确定所述计算窗口中包含填充数据位置。
109.进一步地,所述填充模块还用于:
110.若所述计算窗口包含填充数据位置,则获取并识别预设加填充模式;
111.若所述预设加填充模式为第一加填充模式,则根据所述第一加填充模式确定加填充规则,并根据所述加填充规则,对所述填充数据位置进行加填充操作;
112.若所述预设加填充模式为第二加填充模式,则读取对应的第一数据,并将所述第一数据加填充到所述填充数据位置。
113.进一步地,所述填充模块还用于:
114.若所述预设加填充模式为第一加填充模式,则对所述填充数据位置的第一坐标对应的第一存储地址进行修正,并根据修正后的存储地址读取对应的第二数据;
115.将所述第二数据作为填充数据加填充到所述填充数据位置。
116.进一步地,所述填充模块还包括修正模块,所述修正模块用于:
117.根据所述第一加填充模式和所述原始图片对应的存储地址集合,确定所述填充数据位置待填充的数据对应的第二存储地址,并将所述填充数据位置的第一坐标对应的第一存储地址修正为所述第二存储地址。
118.进一步地,所述填充模块还包括计算模块,所述计算模块用于:
119.将经过所述加填充操作的计算窗口中包含的数据集合输入计算模块中,以得到目标计算结果,并执行步骤:获取计算窗口包含的第一坐标集合和原始图片对应的存储地址集合,并根据所述第一坐标集合和所述存储地址集合,确定所述计算窗口是否包含填充数据位置。
120.本发明还提供一种加填充系统。
121.本发明加填充系统包括:处理器、存储器、ai芯片及存储在所述存储器上并可在所述处理器上运行驱动所述ai芯片的加填充驱动程序,所述加填充驱动程序驱动所述ai芯片执行时实现如上所述的加填充方法的步骤。
122.其中,在所述加填充驱动程序驱动ai芯片执行时所实现的方法可参照本发明加填充方法各个实施例,此处不再赘述。
123.本发明还提供一种计算机可读存储介质。
124.本发明计算机可读存储介质上存储有加填充驱动程序,所述加填充驱动程序驱动ai芯片执行时实现如上所述的加填充方法的步骤。
125.其中,加填充驱动程序驱动所述ai芯片执行时所实现的方法可参照本发明加填充方法各个实施例,此处不再赘述。
126.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
127.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
128.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端系统(可以是手机,计算机,服务器,或者网络系统等)执行本发明各个实施例所述的方法。
129.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书与附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1