一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种卷积特征缓存方法、装置、电子设备及可读存储介质与流程

2022-03-04 22:50:40 来源:中国专利 TAG:


1.本技术涉及神经网络技术领域,特别涉及一种卷积特征缓存方法、卷积特征缓存装置、电子设备及计算机可读存储介质。


背景技术:

2.目前深度学习方面的研究主要以cnn(convolutional neural network,卷积神经网络)为研究对象。而由于处理场景的不同,对cnn的性能要求也不相同,从而发展出多种网络结构。但是cnn的基本组成是固定的,分别为输入层、卷积层、激活层、池化层和全连接层。其中计算量最大的部分是卷积层,其主要的功能就是完成图像(feature)与神经元(filter)之间的卷积运算。对于不同的cnn神经网络结构而言,处理的数据长度是不一样的。对于常见cnn网络结构,其输入输出的数据量是非常大的。例如resnet50网络的一层可以达到512个输入通道,512个输出通道,再乘上图像的尺寸,其数据的字节数量可以达到百万级。同时卷积计算的速率是衡量cnn网络性能的重要指标。这就要求在短时间内能够为计算内核提供大量的计算数据。


技术实现要素:

3.有鉴于此,本技术的目的在于提供一种卷积特征缓存方法、卷积特征缓存装置、电子设备及计算机可读存储介质,能够高效地为计算内核提供提算数据。
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.图1为本技术实施例提供的一种卷积特征缓存方法流程图;
40.图2为本技术实施例提供的一种缓存空间结构图;
41.图3为本技术实施例提供的一种行数据缓存单元结构图;
42.图4为本技术实施例提供的另一种缓存空间结构图;
43.图5为本技术实施例提供的一种缓存空间数据更新示意图;
44.图6为本技术实施例提供的一种卷积特征缓存装置的结构示意图;
45.图7为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
46.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
47.请参考图1,图1为本技术实施例提供的一种卷积特征缓存方法流程图。
48.该方法包括:
49.s101:获取多个卷积特征,并将卷积特征写入缓存空间。
50.其中,缓存空间包括多个缓存单元,各个缓存单元呈二维矩阵排布,每个缓存单元用于存储一个卷积特征。即,各个缓存单元作为二维矩阵中的元素,构成二维矩阵形态的缓存空间。请参考图2,图2为本技术实施例提供的一种缓存空间结构图。其中的每个立方体即表示一个缓存单元,图2中的黑色箭头和横纵两个方向白色箭头构成了横向循环方向和纵向循环方向,这两种方向用于指导卷积特征在缓存空间中的偏移。
51.本实施例并不限定缓存空间的在硬件方面的表现方式,在一种具体的实施方式中,可以将处于同一个二维矩阵行的缓存单元进行集成,得到行数据缓存单元,并利用多个行数据缓存单元在纵向上进行连接,进而构建缓存空间。请参考图3和图4,图3为本技术实施例提供的一种行数据缓存单元结构图,图4为本技术实施例提供的另一种缓存空间结构图。从图4中可以看到,缓存空间包括多个顺序通信连接的行数据缓存单元(即图4中的行数据循环缓存单元),前序行数据缓存单元对应的前序输出端口与后序行数据缓存单元对应的后序输入端口通信连接。其中,前序行数据缓存单元和后续行数据缓存单元是相对关系,即在一组两个利用输出端口和输入端口相连的行数据缓存单元之中,拥有该输出端口的行数据缓存单元即为前序行数据缓存单元,该输出端口即为前序端口。相应的,拥有该输入端口的行数据缓存单元即为后续行数据缓存单元。
52.从图3中可以看出,每个行数据缓存单元中具有多个串联的缓存单元,各个缓存单元分别与本单元的输入端口和输出端口通信连接。且,两个相邻的行数据缓存单元中位置对应的缓存单元通过前序行输出端口以及后序输入端口通信连接。从图3中可以看出,存储单元的输入部分,具有一个三选一的选择器,选择器的输入通道分别为外部输入、前序行数据缓存单元中对应的缓存单元的输入、以及本行数据缓存单元中横向循环顺序确定的前序单元的输入。通过设置上述三个输入通道,任意一个存储单元都可以从外部获取数据,或者可以在横向偏移时获取前序单元发送的数据,或者可以在纵向偏移时获取前序行数据缓存单元中位置对应的缓存单元通过前序行输出端口以及后序输入端口发送的数据。
53.此外,从图3中还可以看出,每个缓存单元具有两个输出通道,分别为在横向偏移时向后续单元发送数据的通道,以及纵向偏移时向后续行数据缓存单元中位置对应的缓存单元发送数据的通道。
54.基于上述缓存空间,本技术提出了一种特殊的缓存方法,在卷积计算开始前,需要获取多个用于进行卷积计算的卷积特征,并将卷积特征写入缓存空间。可以理解的是,每个缓存单元中存储一个卷积特征,因此各个卷积特征之间同样呈二维矩阵排布。
55.通常情况下,卷积计算是针对图像数据进行的计算,在这种情况下,卷积特征与图像中的像素具有对应关系,为了能够有效的进行卷积计算,将卷积特征写入缓存空间的过程可以包括如下步骤:
56.步骤11:确定目标卷积特征,并根据目标卷积特征的像素位置确定目标缓存单元。
57.步骤12:将目标卷积特征写入目标缓存单元。
58.其中,目标卷积特征可以为任意一个卷积特征,在将卷积特征输入缓存空间时,由于图像之间的像素具有位置相关关系,因此与像素对应的卷积特征同样具有位置相关关系。在这种情况下,应当分别将各个卷积特征确定为目标卷积特征,并根据其对应的像素所处的像素位置,确定其在二维形式的缓存空间中的位置,即目标缓存单元。
59.可以理解的是,像素成二维排布形成图像,缓存单元成二维排布形成缓存空间。因此卷积特征可以根据像素在图像中的位置,在二维矩阵形式的缓存空间中排布,使得卷积特征在缓存空间中的存储状态符合像素之间的位置相关关系,进而保证被读出的数据能够表征图像的状态,使得卷积计算的结果有效。需要说明的是,像素位置可以与目标缓存单元在缓存空间中的坐标位置相同,或者可以与目标缓存单元在缓存空间中的坐标位置呈横纵坐标相反的关系。即当像素位置为(x,y)时,目标缓存单元在缓存空间中的坐标位置可以为(x,y),或者可以为(y,x)。
60.s102:若检测到缓存空间被读取,则按照横向循环方向,对各个矩阵行中的卷积特征进行横向偏移。
61.在卷积特征存储完毕后,其用于向计算内核提供卷积计算所需的数据。计算内核计算时所需的数据规模收到计算核规模(也可称为卷积核尺寸)的限制,例如计算核规模为3*3,即说明每次计算需要采用三行三列共九个卷积特征进行计算。在本技术中,缓存空间的二维矩阵规模大于计算核规模,以便一次读入的数据可以尽可能支撑多次卷积计算,减少从外部存储获取卷积特征的次数,尽可能的发挥缓存空间读写速度快的优势,提高计算效率。
62.可以理解的是,卷积计算的过程,可以理解为计算核规模大小的正方形,在卷积特征构成的矩阵上横纵平移,每次平移后将该正方形覆盖到的卷积特征提取出来进行计算,得到计算结果。而在本技术中,该正方形可以保持不动,利用缓存空间中卷积特征的横纵偏移来替代上述正方形的横纵平移。具体的,检测到缓存空间被读取,包括:
63.步骤21:若检测到读取请求,则基于预设读取坐标,根据预设卷积核尺寸从缓存空间中读取目标卷积特征。
64.步骤22:将目标卷积特征发送至众核计算阵列,并确定缓存空间被读取完毕。
65.其中,预设读取坐标,是指用于设定读取范围的基础坐标,其具体不做限定,例如可以为缓存空间的左上角坐标。预设卷积核尺寸,是指计算内核所采用的计算核尺寸,该参数可以根据计算内核的情况预先设定。
66.在每次进行读取时,根据预设读取坐标和预设卷积核尺寸,可以在缓存空间中划定数据读取的范围,即上述说明中计算核规模大小的正方形,并将该正方形覆盖到的卷积特征确定为目标卷积特征。在将目标卷积特征发送至众核计算阵列(即计算核组成的阵列)之后,可以确定本次读取完毕。
67.在检测到缓存空间被读取完毕后,为了为下一次卷积计算提供新的卷积特征,需要模仿上述正方形在卷积特征构成的矩阵上横纵平移的过程重新获取新的卷积特征。在本技术中,可以通过在数据中横向或纵向循环数据的方式替代正方形的横向纵向平移。具体的,请参考图2,图2中示出的缓存空间示意图同样示出了其中的横向循环方向和纵向循环方向。其中,每个横向方向上的白色箭头构成了一个闭合的方向,该方向即为横向循环方向。类似的,纵向方向上的白色箭头和黑色箭头同样构成了一个闭合的方向,该方向即为纵向循环方向。
68.在检测到缓存空间被读取后,首先按照横向循环方向,对由卷积特征组成的矩阵中各个矩阵行进行横向偏移,即将各个矩阵行中的卷积特征进行横向偏移。横向偏移的具体过程可以包括如下步骤:
69.步骤31:按照横向循环方向,确定缓存空间中各个行缓存单元之间的数据流向;行缓存单元在二维矩阵中处于同一个矩阵行。
70.步骤32:按照数据流向,将各个行缓存单元的第一卷积特征发送至对应的后序单元,并将前序单元发送的第二卷积特征保存至行缓存单元。
71.其中,按照横向循环方向,可以在二维矩阵中处于同一个矩阵行的各个行缓存单元之间确定数据流向。行缓存单元,是指处于同一个矩阵行中的缓存单元,其是一种相对概念,即若干个处于同一个矩阵行的各个缓存单元相互之间互为行缓存单元,而处于不同矩阵行的缓存单元之间相互不为行缓存单元。或者可以说,处于同一矩阵行的各个缓存单元,为该矩阵行对应的行缓存单元。数据流向,是指各个行缓存单元之间的数据发送方向。
72.在确定数据流向后,按照该流向,将各个行缓存单元中原本存储的第一卷积特征发送该按照数据流向确定的后续单元,同时,获取前序单元发送的第二卷积特征,作为本存储单元存储的新的卷积特征。
73.进一步的,通常情况下,卷积的步长为1,即上述的正方形在卷积特征构成的矩阵上横纵平移时每次平移一个像素(即平移一行或一列),但是在某些情况下,卷积的步长可能为除1以外的其他,例如可以为2或3。因此在确定后续单元时,可以执行如下步骤:
74.步骤41:按照数据流向,分别以各个行缓存单元为基点,利用预设步长确定各个行缓存单元对应的后序单元。
75.步骤42:将各个行缓存单元的第一卷积特征发送至对应的后序单元。
76.在确定数据流向后,以一个行缓存单元作为其确定后序单元的基点,在此基础上按照数据流向向后推移预设步长,即可确定该行缓存单元对应的后序单元,进而将自身当前存储的第一卷积特征发送至后序单元。对每一个行缓存单元均执行上述步骤,即可完成横向偏移。
77.s103:若检测到横向偏移次数处于第一区间,则按照纵向循环方向,对各个矩阵列中的卷积特征进行纵向偏移,并将横向偏移次数清零。
78.在每一次横向偏移完成后,更新横向偏移次数,横向偏移次数用于记录连续横向偏移的次数。若检测到横向偏移次数处于第一区间,则说明卷积特征已经连续横向偏移足够多次以至于已经恢复至连续横向偏移之前的状态。在这种情况下,继续横向偏移已经无法为计算内核提供新的卷积特征,因此可以按照纵向循环方向,对各个矩阵列中的卷积特征进行纵向偏移,同时将横向偏移次数清零。需要说明的是,第一区间的具体大小不做限定,可以根据需要进行设置。示例性的,第一区间的最小值可以为缓存空间二维矩阵的列数。
79.纵向偏移和横向偏移的过程相同,区别仅在于二者方向不同,具体偏移过程不做限定。经过纵向偏移,可以提供至少一个新的卷积特征矩阵行用于进行数据读取,因此能够为计算内核提供新的卷积特征。该纵向偏移的过程可以视为上述正方形在在卷积特征构成的矩阵上纵向平移的过程。在纵向偏移一次后,将横向偏移次数清零,以便重新开始新一轮的横向偏移。
80.s104:若检测到纵向偏移次数处于第二区间,则确定数据调用完毕。
81.在每一次纵向偏移完成后,更新纵向偏移次数,纵向偏移次数用于记录纵向偏移的次数。当纵向偏移次数处于第二区间时,说明卷积特征已经纵向偏移足够多次以至于已
经恢复至第一次纵向偏移之前的状态。在这种情况下,无论继续进行横向偏移,还是进行纵向偏移,均无法为计算内核提供新的卷积特征,因此可以确定本次数据调用完毕。
82.在确定本次数据调用完毕后,通常情况下,需要将缓存空间中的数据清除,以便重新存入新的卷积特征,进而重新为计算内核提供新的卷积特征。然而,在一种实施方式中,重新写入缓存空间的卷积特征与被清除的卷积特征具有重复的部分。在这种情况下,为了提高数据更新的速度,可以执行如下步骤:
83.步骤51:若检测到需要对缓存空间进行更新,则按照横向循环方向或纵向循环方向对应的非循环方向对缓存空间中的卷积特征进行偏移。
84.步骤52:获取更新卷积特征,并将更新卷积特征写入缓存空间中的空白存储单元。
85.其中,非循环方向,是指未闭合的横向循环方向或纵向循环方向,该方向的终点为矩阵行或矩阵列的最后一个对象。请参考图2,其中,纵向方向对应的非循环方向,是指纵向上白色箭头组成的方向,其并不包括黑色箭头。横向方向对应的非循环方向,是指横向上两两相邻的缓存单元之间的白色箭头组成的方向,并不包括不相邻的缓存单元之间的白色箭头。
86.在检测到需要更新缓存空间时,按照非循环方向对缓存空间中的卷积特征进行偏移。可以理解的是,按照非循环方向进行的偏移必然会导致非循环方向末尾的缓存单元中原本存储的卷积特征被丢弃,同时导致肺循环方向开端的缓存单元中不会存入任何新的卷积特征,称为空白存储单元,这些空白存储单元即用于存储获取到的更新卷积特征。
87.请参考图5,图5为本技术实施例提供的一种缓存空间数据更新示意图。其中,数据1和数据2时缓存空间中原本存储的卷积特征,在检测到需要对缓存空间进行更新时,按照上述步骤进行偏移,将缓存空间中的数据1丢弃,保留数据2,同时获取数据3并将数据3写入空白存储单元,完成数据更新过程。
88.应用本技术实施例提供的卷积特征缓存方法,采用了特殊的缓存空间对卷积特征进行缓存,该缓存空间中存在多个缓存单元,缓存单元的数量大于卷积核的数量,各个缓存单元呈二维矩阵排布,每个缓存单元用于存储一个卷积特征。卷积计算的过程,可以视为由卷积核组成的卷积范围在卷积特征构成的矩阵中横纵滑动选择部分数据并利用其进行计算的过程。因此在将卷积特征存入缓存空间后,每当缓存空间被读取一次时,即选择了一部分卷积特征进行了计算。下一次卷积计算需要提供新的卷积特征,在这种情况下,并不对缓存空间中的数据清除,而是按照横向循环方向,对由卷积特征组成的矩阵中的各个矩阵行进行横向偏移,即利用矩阵中元素的横向偏移来替代卷积核组成的卷积范围在卷积特征构成的矩阵中的横向滑动,使得一次缓存的数据能够被多次卷积使用。在横向偏移次数处于第一区间时,说明从横向角度看,卷积核组成的卷积范围已经选取了所有有效的数据进行了计算。在这种情况下,则按照纵向循环方向,对各个矩阵列中的卷积特征进行一次纵向偏移,更新一行数据,并清零横向偏移次数,以便再次开始进行横向偏移。若检测到纵向偏移次数处于第二区间,则说明缓存空间中的数据从横纵两个方向上所有有效的数据组合均被选取,当前缓存空间中不再具有有效的数据,因此可以确定数据调用完毕。通过上述方式,可以无需频繁地从外部存储介质中获取卷积特征,一次缓存较多卷积特征,并将其最大化利用,缓存的读取速度和带宽远大于外部存储介质,因此可以短时间内提供大量用于卷积计算的卷积特征,提高了计算速度。
89.下面对本技术实施例提供的卷积特征缓存装置进行介绍,下文描述的卷积特征缓存装置与上文描述的卷积特征缓存方法可相互对应参照。
90.请参考图6,图6为本技术实施例提供的一种卷积特征缓存装置的结构示意图,包括:
91.写入模块110,用于获取多个卷积特征,并将卷积特征写入缓存空间;其中,缓存空间包括多个缓存单元,各个缓存单元呈二维矩阵排布,每个缓存单元用于存储一个卷积特征;
92.横向偏移模块120,用于若检测到缓存空间被读取,则按照横向循环方向,对各个矩阵行中的卷积特征进行横向偏移;
93.纵向偏移模块130,用于若检测到横向偏移次数处于第一区间,则按照纵向循环方向,对各个矩阵列中的卷积特征进行纵向偏移,并将横向偏移次数清零;
94.完毕确定模块140,用于若检测到纵向偏移次数处于第二区间,则确定数据调用完毕。
95.可选地,写入模块110,包括:
96.目标确定单元,用于确定目标卷积特征,并根据目标卷积特征的像素位置确定目标缓存单元;
97.写入单元,用于将目标卷积特征写入目标缓存单元。
98.可选地,横向偏移模块120,包括:
99.流向确定单元,用于按照横向循环方向,确定缓存空间中各个行缓存单元之间的数据流向;行缓存单元在二维矩阵中处于同一个矩阵行;
100.发送及接收单元,用于按照数据流向,将各个行缓存单元的第一卷积特征发送至对应的后序单元,并将前序单元发送的第二卷积特征保存至行缓存单元。
101.可选地,发送及接收单元,包括:
102.后序确定子单元,用于按照数据流向,分别以各个行缓存单元为基点,利用预设步长确定各个行缓存单元对应的后序单元;
103.发送子单元,用于将各个行缓存单元的第一卷积特征发送至对应的后序单元。
104.可选地,还包括:
105.更新偏移模块,用于若检测到需要对缓存空间进行更新,则按照横向循环方向或纵向循环方向对应的非循环方向对缓存空间中的卷积特征进行偏移;
106.更新写入模块,用于获取更新卷积特征,并将更新卷积特征写入缓存空间中的空白存储单元。
107.可选地,横向偏移模块120,包括:
108.目标确定单元,用于若检测到读取请求,则基于预设读取坐标,根据预设卷积核尺寸从缓存空间中读取目标卷积特征;
109.数据发送单元,用于将目标卷积特征发送至众核计算阵列,并确定缓存空间被读取完毕。
110.可选地,缓存空间包括多个顺序通信连接的行数据缓存单元,前序行数据缓存单元对应的前序输出端口与后序行数据缓存单元对应的后序输入端口通信连接;
111.每个行数据缓存单元中具有多个串联的缓存单元,各个缓存单元分别与本单元的
输入端口和输出端口通信连接;两个相邻的行数据缓存单元中位置对应的缓存单元通过前序行输出端口以及后序输入端口通信连接。
112.下面对本技术实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的卷积特征缓存方法可相互对应参照。
113.请参考图7,图7为本技术实施例提供的一种电子设备的结构示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(i/o)接口104以及通信组件105中的一种或多种。
114.其中,处理器101用于控制电子设备100的整体操作,以完成上述的卷积特征缓存方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,sram)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、可擦除可编程只读存储器(erasable programmable read-only memory,eprom)、可编程只读存储器(programmable read-only memory,prom)、只读存储器(read-only memory,rom)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。
115.多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near field communication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:wi-fi部件,蓝牙部件,nfc部件。
116.电子设备100可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的卷积特征缓存方法。
117.下面对本技术实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的卷积特征缓存方法可相互对应参照。
118.本技术还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的卷积特征缓存方法的步骤。
119.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
120.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它
实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
121.本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本技术的范围。
122.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
123.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
124.本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献