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

一种数据处理方法、电子设备及存储介质与流程

2022-12-02 19:11:48 来源:中国专利 TAG:


1.本技术涉及神经网络领域,特别是涉及一种数据处理方法、电子设备及存储 介质。


背景技术:

2.在计算机视觉领域,尤其是无人驾驶汽车、无人机、智能终端等应用领域, 通常需要实时处理大量诸如视频等多媒体数据,卷积神经网络则常常被用来处理 图片,尤其是视频等多媒体数据。
3.卷积神经网络的原理是采用卷积,池化等操作从代表图像或视频的数据中提 取特征,以对图像进行识别。卷积神经网络中的池化层则用于对从卷积层提取出 的局部特征进行压缩。池化(polling)运算就是采用最大池化(max polling)或 者平均池化(average polling)的方式,从卷积层中提取出的特征矩阵的子矩阵, 用子矩阵中数据的最大值或者数据的平均值来代替,以简化后续的计算。
4.二维池化(pooling 2d)和三维池化(pooling 3d)都是池化运算中经常使用的算 子,二维池化通常作为处理图像类数据的神经网络算子,三维池化通常作为处理 视频类数据的神经网络算子,常作为神经网络底层算子库存在。现有的硬件平台 通常被用于执行二维池化运算,如果采用现有的硬件平台执行三维池化运算,基 于三维池化运算中输入数据和池化核都是三维,数据量较大,而现有的硬件平台 由于内存资源和处理器的限制,可能导致三维池化运算的计算效率较低,或者可 能无法实现三维池化运算。技术人员通常为了在现有的硬件平台上执行三维池化 运算,而针对现有的硬件平台进行改进,例如,扩大硬件平台的存储空间,增加 硬件平台的处理单元(processing element,pe)等,以实现三维池化运算。然而这 些改进措施往往会使硬件平台的体积变大,整体成本增高。
5.如果能够采用二维池化运算的方式实现三维池化运算,就能利用现有的支持 二维池化运算的硬件平台来实现三维池化运算,从而不再需要对前述硬件平台做 任何的改进。


技术实现要素:

6.有鉴于此,本技术实施例提供了一种数据处理方法、电子设备及存储介质, 可以通过将三维数据进行降维分割后,采用两次二维池化运算,以及两次重新组 合运算,达到采用二维池化运算实现三维池化运算的目的。
7.第一方面,本技术提供一种数据处理方法,应用于电子设备,包括:
8.获取卷积神经网络模型中的待池化数据,其中,待池化数据的大小为[d
in
, h
in
,w
in
,c],w
in
为待池化数据的宽度维度参数,h
in
为待池化数据的高度维度参数, c为待池化数据的通道维度参数,d
in
为待池化数据的深度维度参数,w
in
,h
in
,c 和d
in
都为大于0的自然数;
[0009]
根据深度维度参数d
in
将待池化数据分为d
in
个大小为[h
in
,w
in
,c]的第一数据 块;
[0010]
对每一个第一数据块做第一二维池化运算,获得第一二维池化结果块;
[0011]
对第一二维池化结果块进行第一重新组合计算获得第一组合数据块,其中, 第一组合数据块在每一个通道中的元素对应于kd个第一二维池化结果块在同一 个通道中的所有元素,kd为三维池化核的深度维度参数;
[0012]
对第一组合数据块做第二二维池化运算,获得第二二维池化结果块;
[0013]
对第二二维池化结果块进行第二重新组合计算获得输出数据。
[0014]
在上述第一方面一种可能的实现方式,对第一数据块做第一二维池化运算, 获得第一二维池化结果块,包括:
[0015]
卷积神经网络模型中的三维池化核的大小为[kd,kh,kw,c],三维池化步长的大 小为[sd,sh,sw],其中,kd为三维池化核的深度维度参数,kh为三维池化核的高度 维度参数,kw为三维池化核的宽度维度参数,c为三维池化核的通道维度参数, sd为三维池化步长的深度维度参数,sh为三维池化步长的高度维度参数,sw为三 维池化步长的宽度维度参数,kd,kh,kw,c,sd,sh,sw都为大于0的自然数;
[0016]
根据三维池化核和三维池化步长确定第一二维池化核的大小为[kh,kw,c],第 一二维池化步长的大小为(sh,sw);
[0017]
根据第一二维池化核和第一二维池化步长对第一数据块进行第一二维池化 运算,获得d
in
个第一二维池化结果块;
[0018]
其中,第一二维池化结果块为d_pool1(m),且第一二维池化结果块的大小为 [h
out
,w
out
,c],w
out
为第一二维池化结果块的宽度维度参数,h
out
为第一二维池化结 果块的高度维度参数,c为第一二维池化结果块的通道维度参数,h
out
,w
out
和c 都为大于0的自然数。
[0019]
在上述第一方面一种可能的实现方式,对第一二维池化结果块进行第一重新 组合计算获得第一组合数据块,包括:
[0020]
将{d_pool1(m),d_pool1(m 1)

d_pool1(m k
d-1)}中的kd个第一二维池化结 果块进行第一重新组合计算获得第一组合数据块;
[0021]
其中,第一重新组合计算的步骤包括:
[0022]
将第一二维池化结果块的每一个通道的h
out
×wout
个元素,依照高度维度的 次序,从第一高度维度的w
out
个元素开始,依次排列在同一个高度维度上,获得 kd个包含元素数量为(h
out
×wout
)的数组;
[0023]
在每一个通道上,将kd个数组按照其对应的第一二维池化结果块的序号, 在高度维度的方向依次排列获得第一组合数据块;
[0024]
其中,第一组合数据块为d_shape1(n),n的取值范围为[0,d
out-1],m=n
×
sd, 第一组合数据块的大小为[c,w
out
×hout
,kd],(w
out
×hout
)为第一组合数据块的宽度 维度参数,kd为第一组合数据块的高度维度参数,c为第一组合数据块的通道维 度参数。
[0025]
在上述第一方面一种可能的实现方式,对第一组合数据块做第二二维池化运 算,获得第二二维池化结果块,包括:
[0026]
采用大小为[kd,1,c]的第二二维池化核,大小为(1,1)的第二二维池化步长, 对第一组合数据块进行第二二维池化运算,获得n个第二二维池化结果块;
[0027]
其中,第二二维池化结果块为d_pool2(n),且第二二维池化结果块的大小为 [1,w
out
×hout
,c],(w
out
×hout
)为第二二维池化结果块的宽度维度参数,1为第二 二维池化结果
块的高度维度参数,c为第二二维池化结果块的通道维度参数,h
out
, w
out
和c都为大于0的自然数。
[0028]
在上述第一方面一种可能的实现方式,对第二二维池化结果块进行第二重新 组合计算获得输出数据,包括:
[0029]
将第二二维池化结果块中每一个通道的(w
out
×hout
)
×
1大小的数组进行重 新排列,从数组的第一个元素开始,将每w
out
个元素排在同一个高度维度上,依 次排成h
out
个高度维度,且每一个高度维度有w
out
个元素的数组,获得输出数据。
[0030]
在上述第一方面一种可能的实现方式,第一二维池化运算和第二二维池化运 算包括最大池化运算或平均池化运算。
[0031]
第二方面,本技术提供一种数据处理装置,包括:
[0032]
第一获取单元,用于获取卷积神经网络模型中的待池化数据;
[0033]
划分单元,用于根据深度维度参数d
in
将待池化数据分为d
in
个第一数据块;
[0034]
第二获取单元,用于对每一个第一数据块做第一二维池化运算,获得第一二 维池化结果块;
[0035]
第三获取单元,用于对第一二维池化结果块进行第一重新组合计算获得第一 组合数据块;
[0036]
第四获取单元,用于对第一组合数据块做第二二维池化运算,获得第二二维 池化结果块;
[0037]
第五获取单元,用于对第二二维池化结果块进行第二重新组合计算获得输出 数据;
[0038]
其中,待池化数据的大小为[d
in
,c,h
in
,w
in
],其中,w
in
为待池化数据的宽度维 度参数,h
in
为待池化数据的高度维度参数,c为待池化数据的通道维度参数,d
in
为待池化数据的深度维度参数,w
in
,h
in
,c和d
in
都为大于0的自然数。
[0039]
第三方面,本技术提供一种可读存储介质,可读存储介质上存储有指令,该 指令在终端设备上执行时上述第一方面的数据处理方法。
[0040]
第四方面,本技术提供一种电子设备,包括存储器,用于存储由电子设备的 一个或多个处理器执行的指令,以及处理器,是电子设备的处理器之一,用于执 行上述第一方面的数据处理方法。
[0041]
本技术采用二维池化运算实现三维池化运算,则可以直接采用现有的用于二 维池化的硬件平台实现三维池化运算,以对三维数据进行三维池化操作,避免了 采用现有的用于二维池化的硬件平台实现三维池化运算可能导致的无法执行或 者计算效率低,也避免了为了实现三维池化运算而需要对现有的用于二维池化的 硬件平台进行升级可能带来的需要更加复杂的硬件设计,更加高昂的成本,更加 大的体积以及升级失败的可能性。
附图说明
[0042]
图1根据本技术的一些实施例,示出了一种卷积神经网络的应用场景示意 图;
[0043]
图2根据本技术的一些实施例,示出了一种二维池化运算原理的示意图;
[0044]
图3a根据本技术的一些实施例,示出了一种三维池化运算原理的示意图;
[0045]
图3b根据本技术的一些实施例,示出了一种利用二维池化运算实现三维池 化运
算的原理的示意图;
[0046]
图4根据本技术的一些实施例,示出了一种利用二维池化运算实现三维池化 运算的计算网络结构图;
[0047]
图5根据本技术的一些实施例,示出了一种利用二维池化运算实现三维池化 运算的方法流程示意图;
[0048]
图6根据本技术的一些实施例,示出了一种电子设备的硬件结构示意图。
具体实施方式
[0049]
本技术的说明性实施例包括但不限于实施例中的基于卷积神经网络的数据 处理方法、电子设备及介质。
[0050]
为使本技术的目的、技术方案和优点更加清楚,下面通过结合附图和实施方 案,对本技术实施例的技术方案做进一步地详细描述。显然,所描述的实施例仅 是本发明部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普 通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发 明保护的范围。
[0051]
为了更加清楚的说明本技术实施例的方案,下面对本技术实施例中涉及到的 一些术语进行解释。
[0052]
卷积神经网络(convolutional neural networks,cnn):包含卷积计算且具 有深度结构的前馈神经网络,是深度学习的代表算法之一。cnn可以被用于在 时间维度上对音频和文本数据进行一维卷积和池化操作,对图像数据沿(高度
×ꢀ
宽度)维度进行二维处理,对视频数据沿(高度
×
宽度
×
时间)维度进行三维处 理。
[0053]
池化:池化层用于缓解卷积层对位置的过度敏感性。同卷积层一样,池化层 每次对输入数据的一个固定形状窗口,即池化窗口中的元素计算输出。池化层直 接计算池化窗口内元素的最大值或者平均值,该运算也分别叫做最大池化或平均 池化。例如,池化窗口形状为2
×
2,对输入的3
×
3尺寸的数据进行最大池化。输 入的数据分别为{0,1,2,3,4,5,6,7,8},最大池化运算即依次计算池化窗口内元素的 最大值,得到输出形状为2
×
2的数据,输出形状中的元素分别为{4,5,7,8}。在 处理多通道输入数据时,池化层对每个输入通道分别池化,但不会像卷积层那样 将各通道的结果按通道相加,即池化层的输出通道数和输入通道数相等。
[0054]
如背景技术中所述,卷积神经网络可以被用于处理包括图片、视频等在内 的数据,而二维池化和三维池化则是卷积神经网络模型中的池化层中经常使用的 算子。下面将结合图1至图3,详细描述卷积神经网络以及其中涉及的二维池化 运算和三维池化运算的原理。
[0055]
图1为卷积神经网络的应用场景图。如图1所示,将视频数据输入电子设 备100,利用电子设备100中的卷积神经网络(cnn)模型处理视频数据,包括: 首先将视频数据输入电子设备100中的卷积神经网络模型,被输入的视频数据在 卷积神经网络中的输入层进行去均值化、归一化和白化等处理后,传输到隐含层 中的卷积层;在卷积层中对输入层传输的数据进行特征提取,采用卷积核和设定 的步长遍历卷积层中的每一个元素,把最终的卷积运算结果进行叠加再把叠加后 的特征图数据传递至池化层;在池化层中对输入的特征图数据进行特征选择和信 息过滤,采用最大值池化或平均值池化进行相关池化计算,将特征
图数据的大小 进行压缩后传输至全连接层;在全连接层中将卷积层和池化层传输的数据进行处 理,将提取的特征进行非线性组合,最后通过激励函数进行传输,再传递至输出 层;在输出层中将最后整合的数据输出。
[0056]
由上述卷积神经网络的运算原理可知,卷积神经网络就是采用多个卷积核, 在原始输入数据中上做扫描特征匹配。如果待处理的数据越多,卷积需要移动的 步数也越多,计算量也越大;由于只有和卷积和最为匹配的部分,卷积得到的特 征结果才最大,在做分类任务中,也只有最显著的特征即特征结果最大的特征可 能才是对完成任务贡献最大的,因此可以从减少计算量的目的出发,忽略掉其他 一些不是最显著的特征,也就是可以采用池化操作,在尽量不影响最终结果的情 况下,减少计算量,提高处理器的计算效率。卷积神经网络中的池化层即是被用 于采用最大池化或平均池化的方式进行池化操作,将来自卷积层的特征图数据的 大小进行压缩后传输至全连接层。下面的图2和图3介绍了池化层中采用二维池 化运算处理二维数据和采用三维池化运算处理三维数据的方法示意图。
[0057]
参照图2,二维输入数组通过二维滑窗,按照固定的二维步长进行移动,采 用最大池化运算对二维滑窗里的数据进行处理。二维输入数组的输入尺寸为 [h
in
,w
in
,c],其中,宽度维度参数w
in
等于4,高度维度参数h
in
等于4,通道维度 参数c等于1,输入数组可以表示为1个4
×
4的数组;二维池化核的尺寸为 [kh,kw,1],其中,二维池化核的高度维度参数kh等于2,宽度维度参数kw等于2, 二维池化核的通道维度参数等于1;步长的尺寸为[sh,sw],其中,步长高度维度 参数sh等于2,宽度维度参数sw等于2。由图2所示,线框a1中输入的为大小 为[4,4,1]的二维数组,线框b1中为对二维数组采用大小为[2,2,1]的池化核,尺寸 为[2,2]的步长进行最大池化运算的过程,比如,在二维滑窗中取二维数组中的元 素{2,11,7,9}中的最大值11;在二维滑窗中取二维数组中的元素{5,15,3,12}中的 最大值15;在二维滑窗中取取二维数组中的元素{22,2,5,4}中的最大值22;在二 维滑窗中取二维数组中的元素{9,20,6,12}中的最大值20;获得线框c1中的输出 数据{11,15,22,20},输出数据的大小为[2,2,1],宽度维度参数等于2,高度维度 参数等于2,通道维度参数等于1。
[0058]
参照图3,将三维输入数组通过三维滑窗按照固定的三维步长进行移动,采 用最大池化运算对三维池化核内的数据进行处理。三维输入数组的输入尺寸为 [d
in
,h
in
,w
in
,c],其中,宽度维度参数w
in
等于4,高度维度参数h
in
等于4,通道维 度参数c等于1,深度维度参数d
in
等于4,其中,深度维度参数d
in
可用于表示 个数,通道维度参数等于1,则三维输入数组可以被看成4个4
×
4的数组;三 维池化核的尺寸为[kd,kh,kw,1],其中,三维池化核的深度维度参数kd等于2,高 度维度参数kh等于2,宽度维度参数kw等于2,通道维度参数等于1;步长的尺 寸为[sd,sh,sw],其中,步长的深度维度参数sd等于1,高度维度参数sh等于2, 宽度维度参数sw等于2。由图3所示,线框a2中输入的为大小为[4,4,4,1]的三 维数组,线框b2中为对三维数组采用大小为[2,2,2,1]的池化核,尺寸为[1,2,2]的 步长进行最大池化运算的过程,比如,在三维滑窗中取三维数组中的元素 {2,11,7,9,5,18,15,16}中的最大值为18;在三维滑窗中取三维数组中的元素 {5,15,3,12,1,5,9,6}中的最大值为15;在三维滑窗中取三维数组中的元素 {22,2,5,4,13,11,8,2}中的最大值为22;在三维滑窗中取三维数组中的元素 {9,20,6,12,25,22,5,2}中的最大值为25;在三维滑窗中取三维数组中的元素 {5,18,15,16,6,9,9,21}中的最大值为21;在三维滑窗中取三维数组中的元素 {1,5,9,6,8,9,23,6}中的最大值为23;在三维滑窗中取三维数组中的元素 {13,11,8,2,3,15,
2,9}中的最大值为15;在三维滑窗中取三维数组中的元素 {25,22,5,2,21,3,29,15}中的最大值为29;在三维滑窗中取三维数组中的元素 {6,9,9,21,2,22,15,19}中的最大值为22;在三维滑窗中取三维数组中的元素 {8,9,23,6,7,14,8,5}中的最大值为23;在三维滑窗中取三维数组中的元素 {3,15,2,9,2,5,3,20}中的最大值为20;在三维滑窗中取三维数组中的元素 {21,3,29,15,3,10,5,6}中的最大值为29,获得线框c2中的输出数据{18,15,22,25}, {21,23,15,29},{22,23,20,29},输出数据的大小为[2,2,2,1],宽度维度参数等于2, 高度维度参数等于2,通道维度参数等于1,深度维度参数等于2。
[0059]
如背景技术中所述,现有的硬件平台往往支持二维池化运算,如果可以采用 二维池化运算实现三维池化运算,则可以直接采用现有的用于二维池化的硬件平 台实现三维池化运算,以对三维数据进行三维池化操作,避免了为了实现三维池 化运算而需要对现有的硬件平台进行升级可能带来的一系列问题,例如需要更加 复杂的硬件设计,更加高昂的成本,更加大的体积以及升级失败的可能性等。
[0060]
为了解决背景技术中所述的通过现有的硬件平台实现三维池化运算的技术 问题,本技术实施例提出了一种利用二维池化运算实现三维池化运算的方法,可 以首先将卷积层传递至池化层的输入数据按照深度维度d
in
,分成d
in
个第一数据 块;对所有的第一数据块分别进行第一次二维池化运算获得d
in
个第一二维池化 结果块;对第一二维池化结果块中的每kd个第一二维池化结果块进行第一重新 组合计算,获得d
out
个第一组合数据块;对所有的第一组合数据块分别进行第二 次二维池化运算获得第二二维池化结果块;对所有的第二二维池化结果块分别进 行第二重新组合计算获得d
out
个第二组合数据块;再将所有的第二组合数据块进 行第三重新组合计算得到输出数据。
[0061]
例如,假设卷积层传递至池化层的输入数据和各参数都如图3a所示。输入 数据的大小为[d
in
,h
in
,w
in
,c],其中,w
in
为输入数据的宽度维度参数,h
in
为输入数 据的高度维度参数,c为输入数据的通道维度参数,d
in
为输入数据的深度维度参 数,w
in
等于4,h
in
等于4,c等于1和d
in
等于4;三维池化核的尺寸为[kd,kh,kw,1], kd为三维池化核的深度维度参数,kh为三维池化核的高度维度参数,kw为三维 池化核的宽度维度参数,1为三维池化核的通道维度参数;三维池化步长的尺寸 为[sd,sh,sw],sd为三维池化步长的深度维度参数,sh为三维池化步长的高度维度 参数,sw为三维池化步长的宽度维度参数,kd等于2,kh等于2,kw等于2,sd等于2,sh等于2,sw等于2。
[0062]
如图3b所示,本方法首先将输入数据按照深度维度,分成4个第一数据块, 即图3b中的a3虚线框中的4个第一数据块;采用二维池化核[kh,kw,c],即[2,2,1] 步长的大小为(2,2),如图2中的二维池化运算的方法所示,用最大池化模式对 所有的第一数据块分别进行第一次二维池化运算,获得如b3虚线框中的4个第 一二维池化结果块;对前述4个第一二维池化结果块中每2个第一二维池化结果 块进行第一重新组合计算,获得c3虚线框中的3个第一组合数据块;采用大小 为[kd,1,c],即[2,1,1]的二维池化核,大小为(1,1)的二维池化步长,对第四层中 的所有第一组合块进行第二二维池化运算获得d3虚线框中的第二二维池化结果 块;对所有的第二二维池化结果块分别进行第二重新组合计算获得e3的输出数 据{18,15,22,25},{21,23,15,29},{22,23,20,29},输出数据的大小为[2,2,2,1],宽 度维度参数等于2,高度维度参数等于2,通道维度参数等于1,深度维度参数 等于2。
[0063]
本方法通过将三维输入数据通过深度维度分割后,降维实行两次二维池化计 算,
并结合其他的重组计算实现三维池化运算的目的,实现了可以通过现有的用 于二维池化运算的硬件平台执行并实现三维池化运算的目的,避免了需要升级现 有的用于二维池化运算的硬件平台至用于三维池化运算的硬件平台可能带来的 一系列的问题,例如升级失败、升级后硬件成本较高,升级后硬件体积较大,以 及运算效率较低的问题;也避免了如果采用现有的用于二维池化运算的硬件平台 执行三维池化运算可能导致的计算失败或者计算效率较低的问题。
[0064]
下面根据图4和图5,详细介绍本技术实施例中的一种利用二维池化运算实 现三维池化运算的计算网络结构图和对应的一种利用二维池化运算实现三维池 化运算的方法。
[0065]
图4为本技术实施例中的一种利用二维池化运算实现三维池化运算的计算 网络结构图。其中,训练好的卷积神经网络模型中的三维池化核的尺寸为 [kd,kh,kw,c],kd为三维池化核的深度维度参数,kh为三维池化核的高度维度参数, kw为三维池化核的宽度维度参数,c为三维池化核的通道维度参数;三维池化步 长的尺寸为[sd,sh,sw,c],sd为三维池化步长的深度维度参数,sh为三维池化步长的 高度维度参数,sw为三维池化步长的宽度维度参数,c为三维池化步长的通道维 度参数,kd,kh,kw,sd,c,sh和sw都为大于0的自然数。
[0066]
上述计算网络可以分为六层,分别包括:
[0067]
第一层,即输入数据层。
[0068]
输入数据层中的输入数据为卷积神经网络模型中的卷积层传递的特征数据。 输入数据为大小为[d
in
,h
in
,w
in
,c]的三维数据,例如视频数据等,其中,w
in
为三维 数据的宽度维度参数,h
in
为三维数据的高度维度参数,c为三维数据的通道维度 参数,d
in
为三维数据的深度维度参数,w
in
,h
in
,c和d
in
都为大于0的自然数。
[0069]
第二层,即第一数据块层。
[0070]
第一数据块为根据三维数据的深度维度参数d
in
将输入数据划分成的d
in
个大 小为[h
in
,w
in
,c]的第一数据块,第一数据块可以表示为data_in(m),m的取值范围 为[0,d
in-1],m为大于0的自然数。
[0071]
第三层,即第一二维池化结果块层。
[0072]
采用大小为[kh,kw,c]的二维池化核,大小为(sh,sw)的二维池化步长,对第 二层中的所有第一数据块进行第一二维池化运算,获得d
in
个第一二维池化结果 块,第一二维池化结果块可以表示为d_pool1(m),且第一二维池化结果块 d_pool1(m)的大小为[h
out
,w
out
,c],其中w
out
为第一二维池化结果块的宽度维度参 数,h
out
为第一二维池化结果块的高度维度参数,c为第一二维池化结果块的通 道维度参数,w
out
,h
out
和c都为大于0的自然数。
[0073]
第四层,即第一组合数据块层。
[0074]
对第一二维池化结果块进行第一重新组合计算获得第一组合数据块。第一组 合数据块可以表示为d_shape1(n),n的取值范围为[0,d
out-1],且n
×
sd=m。第一 重新组合计算就是把{d_pool1(m),d_pool1(m 1),

,d_pool1(m k
d-1)}中的第一 二维池化结果块重新组合后获得第一组合数据块,n为大于0的自然数。
[0075]
每一个第一二维池化结果块可以看成是通道维度参数为c,且每一通道有h
out
×wout
个元素的数组。第一重新组合计算的方法将对{d_pool1(m), d_pool1(m 1)

d_pool1(m k
d-1)}的每一通道做相同的操作。
[0076]
例如,在第一通道,首先将d_pool1(m)中第一通道的h
out
×wout
个元素重新 排列,即将每一个高度维度上的w
out
个元素依照高度维度h
out
的次序,从第一高 度维度的w
out
个元素开始,依次排在同一个高度维度上,组成共(w
out
×hout
)个 元素的第一数组,并将第一数组作为第一组合数据块的第一通道的第一高度维度 上的元素;接着d_pool1(m 1)中第一通道的h
out
×wout
个元素重新排列,即将每 一个高度维度上的w
out
个元素依照高度维度h
out
的次序,从第一高度维度的w
out
个元素开始,依次排在同一个高度维度上,组成共(w
out
×hout
)个元素的第二数 组,并将第二数组作为第一组合数据块的第一通道的第二高度维度上的元素;依 次对kd个第一二维池化结果块的第一通道中的元素做相同的操作,并把 d_pool1(m k
d-1)中第一通道的h
out
×wout
个元素重新排列后获得的第kd数组作 为第一组合数据块的第一通道的第kd高度维度上的元素。
[0077]
同样的,在第二通道,直至第c通道,对{d_pool1(m),d_pool1(m 1)
…ꢀ
d_pool1(m k
d-1)}中第一二维池化结果块的每一通道做相同的操作,最终获得第 一组合数据块。第一组合数据块的大小为[kd,w
out
×hout
,c],(w
out
×hout
)为第一组合 数据块的宽度维度参数,kd为第一组合数据块的高度维度参数,c为第一组合数 据块的通道维度参数,w
out
,h
out
和c都为大于0的自然数。
[0078]
例如,将大小为[h
out
,w
out
,c]的3个第一二维池化结果块进行第一重新组合计 算获得第一组合数据块的方法为:假设h
out
=2,w
out
=2,c=1,由于通道维度参 数c等于1,3个第一二维池化结果块可以看成为3个2
×
2的二维数据,分别为 和将这3个第一二维池化结果块中每一高度维度的2个 元素按照高度维度的次序排成一行,即获得{1,2,3,4},{2,3,3,4}和{3,4,3,4}这三 个数组,再将这三个数组按照原来的第一二维池化结果块的序号,顺着宽度维度 的方向排在一起,组成即大小为3
×
(2
×
2)的第一组合数据块。
[0079]
第五层,即第二二维池化结果块层。
[0080]
采用大小为[kd,1,c]的二维池化核,大小为(1,1)的二维池化步长,对第四 层中的所有第一组合数据块进行第二二维池化运算,获得n个第二二维池化结果 块,第二二维池化结果块可以表示为d_pool2(n),且第二二维池化结果块 d_pool2(n)的大小为[1,w
out
×hout
,c],其中w
out
×hout
为第二二维池化结果块的宽度 维度参数,1为第二二维池化结果块的高度维度参数,c为第二二维池化结果块 的通道维度参数,h
out
,w
out
和c都为大于0的自然数。
[0081]
第六层,即输出数据层。
[0082]
对第二二维池化结果块进行第二重新组合计算获得第二组合数据块。第二组 合数据块可以表示为data_out(n),n的取值范围为[0,d
out-1],且n
×
sd=m。第二 重新组合计算把第二二维池化结果块重新组合后获得第二组合数据块。其中每一 个第二池化数据结果块可以看成c个通道,且每一个通道为(w
out
×hout
)
×
1大 小的数组;第二重新组合计算就是将每一个通道中的数组重新排列,将每一个通 道中的每w
out
个元素排成一个高度维度,依次排成h
out
个高度维度,获得输出数 据。输出数据中的输出数据块的大小为[h
out
,w
out
,c],即w
out
为输出数据块的宽度 维度参数,h
out
为输出数据块的高度维度参数,c为输出数据
块的通道维度参数。
[0083]
上述计算网络利用两次二维池化操作以及拆分和重新组合操作,实现了对三 维数据的三维池化操作,简化了对三维数据的池化操作的计算过程,并可以使用 现有的用于二维池化运算的硬件平台实现三维池化运算,避免了使用现有的用于 二维池化运算的硬件平台执行三维池化运算中可能出现错误或者无法执行的情 况,也避免了为了将现有的用于二维池化运算的硬件平台升级为用于三维池化运 算的硬件平台以执行三维池化运算,可能导致的一系列例如使得硬件平台的体积 变大,整体成本增高的问题。
[0084]
可以理解,上述二维池化运算可以采用最大池化运算也可以采用平均池化运 算,在此不做具体限定。
[0085]
结合图4中的利用二维池化运算实现三维池化运算的计算网络结构图,图5 示出了本技术实施例的一种利用二维池化运算实现三维池化运算的计算方法流 程图。
[0086]
参考图5,上述方法可以包括以下步骤:
[0087]
s100,电子设备获取输入数据。
[0088]
输入数据为卷积神经网络模型中的卷积层传递的特征数据,输入数据的大小 为[d
in
,h
in
,w
in
,c],其中,w
in
为输入数据的宽度维度参数,h
in
为输入数据的高度维 度参数,c为输入数据的通道维度参数,d
in
为输入数据的深度维度参数,其中, w
in
,h
in
,c和d
in
都为大于0的自然数。
[0089]
s200,电子设备根据深度维度参数d
in
将输入数据分为d
in
个第一数据块。
[0090]
第一数据块data_in(m)的大小为[h
in
,wi,c],m为大于0的自然数,m的取值 范围为[0,d
in-1],其中w
in
为输入数据的宽度维度参数,h
in
为输入数据的高度维 度参数,c为输入数据的通道维度参数。
[0091]
s300,电子设备对第一数据块做第一二维池化运算,获得第一二维池化结果 块。
[0092]
根据图4中卷积神经网络模型提供的参数,设定二维池化核的大小为 [kh,kw,c],步长的大小为(sh,sw),可以如图2中的二维池化运算的方法所示,对 第一数据块进行二维池化运算,获得d
in
个第一二维池化结果块d_pool1(m),且 第一二维池化结果块d_pool1(m)的大小为[h
out
,w
out
,c],其中w
out
为第一二维池化 结果块的宽度维度参数,h
out
为第一二维池化结果块的高度维度参数,c为第一 二维池化结果块的通道维度参数,h
out
,w
out
和c都为大于0的自然数。
[0093]
s400,电子设备对第一二维池化结果块进行第一重新组合计算获得第一组合 数据块。
[0094]
假设对第一二维池化结果块进行重新组合计算获得d
out
个第一组合数据块 d_shape1(n),n的取值范围为[0,d
out-1],那么m和n满足m=n
×
sd,第一组合数 据块为将{d_pool1(m),d_pool1(m 1)

d_pool1(m k
d-1)}中的kd个第一二维池化 结果块组合在一起形成的新的数据块。每一个第一二维池化结果块可以看成是通 道维度参数为c,且每一通道有h
out
×wout
个元素的数组。第一重新组合计算的方 法将对{d_pool1(m),d_pool1(m 1)

d_pool1(m k
d-1)}的每一通道做相同的操 作。
[0095]
例如,在第一通道,首先将d_pool1(m)中第一通道的h
out
×wout
个元素重新 排列,即将每一个高度维度的w
out
个元素依照高度维度的次序,从第一高度维度 的w
out
个元素开始,依次在同一个高度维度上,组成共(w
out
×hout
)个元素的第 一数组,并将第一数组作为
第一组合数据块的第一通道的第一高度维度上的元 素;接着将d_pool1(m 1)中第一通道的h
out
×wout
个元素重新排列,即将每一高 度维度的w
out
个元素依照高度维度的次序,从第一高度维度的w
out
个元素开始, 依次排列在同一个高度维度上,组成共(w
out
×hout
)个元素的第二数组,并将第 二数组作为第一组合数据块的第一通道的第二高度维度上的元素;依次对kd个 第一二维池化结果块的第一通道中的元素做相同的操作,并把d_pool1(m k
d-1) 中第一通道的h
out
×wout
个元素重新排列后获得的第kd数组作为第一组合数据块 的第一通道的第kd高度维度上的元素。同样的,在第二通道,直至第c通道, 对{d_pool1(m),d_pool1(m 1)

d_pool1(m k
d-1)}中第一二维池化结果块的每一 通道做相同的操作,获得第一组合数据块。第一组合数据块的大小为[w
out
×hout
, kd,c],(w
out
×hout
)为第一组合数据块的宽度维度参数,kd为第一组合数据块的高度 维度参数,c为第一组合数据块的通道维度参数,w
out
,h
out
和c都为大于0的自 然数。
[0096]
例如,将大小分别为[h
out
,w
out
,c]的3个第一二维池化结果块进行第一重新组 合计算获得第一组合数据块的方法为:假设h
out
=2,w
out
=2,c=1,由于通道维 度参数c等于1,3个第一二维池化结果块可以看成为3个2
×
2的二维数据,分 别为和将这3个第一二维池化结果块中每一行的2个元 素按照行号的次序排成一行,即获得{1,2,3,4},{2,3,3,4}和{3,4,3,4}这三个数组, 再将这三个数组按照原来的第一二维池化结果块的序号,顺着宽度维度的方向排 在一起,组成即大小为3
×
(2
×
2)的二维的第一组合数据块。
[0097]
s500,电子设备对第一组合数据块做第二二维池化运算,获得第二二维池化 结果块。
[0098]
采用大小为[kd,1,c]的二维池化核,大小为(1,1)的二维池化步长,对第四 层中的所有第一组合数据块进行第二二维池化运算,获得n个第二二维池化结果 块,第二二维池化结果块可以表示为d_pool2(n),且第二二维池化结果块 d_pool2(n)的大小为[1,w
out
×hout
,c],其中w
out
×hout
为第二二维池化结果块的宽度 维度参数,1为第二二维池化结果块的高度维度参数,c为第二二维池化结果块 的通道维度参数,h
out
,w
out
和c都为大于0的自然数。
[0099]
s600,电子设备对第二二维池化结果块进行第二重新组合计算获得输出数 据。
[0100]
第二组合数据块可以表示为data_out(n),n的取值范围为[0,d
out-1],且n
×ꢀ
sd=m。第二重新组合计算把第二二维池化结果块重新组合后获得输出数据。其 中每一个第二池化数据结果块可以看成c个通道,且每一个通道为(w
out
×hout
)
ꢀ×
1大小的数组;第二重新组合计算就是将每一个通道中的数组重新排列,将每 一个通道中的每w
out
个元素排在同一个高度维度上,依次排成h
out
个高度维度, 获得输出数据块。输出数据块的大小为[h
out
,w
out
,c],即w
out
为输出数据块的宽度 维度参数,h
out
为输出数据块的高度维度参数,c为输出数据块的通道维度参数。
[0101]
采用上述方案,可以将一次三维池化运算采用两次二维池化运算和拆分及重 组等运算共同实现。在现有的硬件平台的限制下,可以不用升级现有的只用于二 维池化运算
的硬件平台,不用尝试采用现有的只用于二维池化运算的硬件平台去 执行三维池化操作,而是可以通过现有的用于二维池化运算的硬件平台,进行二 维池化运算,便达到实现三维池化运算的目的,避免了在升级现有现有的只用于 二维池化运算的硬件平台的过程中或者在使用现有现有的用于二维池化运算的 硬件平台执行三维池化运算的过程中可能造成的一系列问题的影响,包括升级或 者执行三维池化运算失败,或者即使升级或者执行三维运算成功,但是运算效率 低下,或者对升级的硬件成本要求较高,设计繁琐等问题。
[0102]
为便于理解本技术各实施例的技术方案,下面对电子设备100的硬件结构进 行介绍。
[0103]
进一步,图6根据本技术的一些实施例,示出了一种电子设备100的结构示 意图。如图6所示电子设备100包括一个或多个处理器101、系统内存102、非 易失性存储器(non-volatile memory,nvm)103、通信接口104、输入/输出(i/o) 设备105、以及用于耦接处理器101、系统内存102、非易失性存储器103、通信 接口104和输入/输出(i/o)设备105的系统控制逻辑106。
[0104]
其中:处理器101可以包括一个或多个处理单元,例如,可以包括中央处理 器(central processing unit,cpu)、图像处理器gpu(graphics processing unit)、 数字信号处理器dsp(digital signal processor)、神经网络处理器(neural networkprocessing unit,npu)、微处理器mcu(micro-programmed control unit)、 ai(artificial intelligence,人工智能)处理器或、编程逻辑器件fpga(fieldprogrammable gate array)的处理模块或处理电路或其他包括本技术的数据处理 装置,实现基于卷积神经网络处理数据并可以实现上述利用二维池化运算实现三 维池化运算的处理器,具体处理器类型在此不做具体要求。
[0105]
在一些实施例中,处理器101可以包括前述数据处理装置,以在需要在对输 入数据进行拆分并通过两次二维池化运算和重组等计算实现三维池化运算,由于 该装置通过二维池化运算实现三维池化运算,可以不用升级或者改变现有的装 置,计算效率也较高。
[0106]
系统内存102是易失性存储器,例如随机存取存储器(random-accessmemory,ram),双倍数据率同步动态随机存取存储器(double data ratesynchronous dynamic random access memory,ddr sdram)等。系统内存用 于临时存储数据和/或指令,例如,在一些实施例中,系统内存102可以用于存 储上述卷积神经网络模型及其内的参数,以及输入和输出数据等。
[0107]
非易失性存储器103可以包括用于存储数据和/或指令的一个或多个有形的、 非暂时性的计算机可读介质。在一些实施例中,非易失性存储器103可以包括闪 存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘 驱动器(hard disk drive,hdd)、光盘(compact disc,cd)、数字通用光盘 (digital versatile disc,dvd)、固态硬盘(solid-state drive,ssd)等。在一些 实施例中,非易失性存储器103也可以是可移动存储介质,例如安全数字(securedigital,sd)存储卡等。
[0108]
特别地,系统内存102和非易失性存储器103可以分别包括:指令107的临 时副本和永久副本。指令107可以包括:由处理器101中的至少一个执行使电子 设备100实现本技术各实施例提供的基于卷积神经网络的数据处理方法。
[0109]
通信接口104可以包括收发器,用于为电子设备100提供有线或无线通信接 口,进
而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中, 通信接口104可以集成于电子设备100的其他组件,例如通信接口104可以集成 于处理器101中。在一些实施例中,电子设备100可以通过通信接口104和其他 设备通信。
[0110]
输入/输出(i/o)设备105可以包括输入设备如键盘、鼠标等,输出设备如 显示器等,用户可以通过输入/输出(i/o)设备105与电子设备100进行交互。
[0111]
系统控制逻辑106可以包括任意合适的接口控制器,以终端100的其他模块 提供任意合适的接口。例如在一些实施例中,系统控制逻辑106可以包括一个或 多个存储器控制器,以提供连接到系统内存102和非易失性存储器103的接口。
[0112]
在一些实施例中,处理器101中的至少一个可以与用于系统控制逻辑106 的一个或多个控制器的逻辑封装在一起,以形成系统封装(system in package, sip)。在另一些实施例中,处理器101中的至少一个还可以与用于系统控制逻 辑106的一个或多个控制器的逻辑集成在同一芯片上,以形成片上系统 (system-on-chip,soc)。
[0113]
可以理解,图6所示的电子设备100的结构只是一种示例,在另一些实施例 中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者 拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬 件的组合实现。
[0114]
本技术公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方 法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序 代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存 储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
[0115]
可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信 息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的, 处理系统包括具有诸如例如数字信号处理器(digital signal processor,dsp)、 微控制器、专用集成电路(application specific integrated circuit,asic)或微处 理器之类的处理器的任何系统。
[0116]
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理 系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本 申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以 是编译语言或解释语言。
[0117]
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实 现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例 如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理 器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此, 机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息 的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd-roms)、 磁光盘、只读存储器(read only memory,rom)、随机存取存储器(randomaccess memory,ram)、可擦除可编程只读存储器(erasable programmable readonly memory,eprom)、电可擦除可编程只读存储器(electrically erasableprogrammable read-only memory,eeprom)、磁卡或光卡、闪存、或用于利 用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信 号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机 器(例如计算机)可读的形式存储或传
输电子指令或信息的任何类型的机器可读 介质。
[0118]
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应 该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些 特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图 中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且 在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
[0119]
需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模 块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物 理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/ 模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的 组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部 分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太 密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
[0120]
需要说明的是,在本专利的示例和说明书中,术语“包括”、“包含”或者其任 何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、 物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是 还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况 下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物 品或者设备中还存在另外的相同要素。
[0121]
虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述, 但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而 不偏离本技术的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献